原帖:http://blog.csdn.net/jxusthusiwen/article/details/6518499
一.VS2008中DirectX 9.0的配置方法
1. 在VS2008里面选择: ”工具”-->”选项”-->”项目和解决方案”-->”vc++目录”
2. 在”显示以下内容的目录”下的下拉框中选择"包含文件"中插入新行输入
选择“E:/Include”
3.在”显示以下内容的目录”下的下拉框中选择”库文件”插入新行并输入
”E:/Lib/x86”
( 没有双引号,具体看你的DirectX安装目录)
二.测试程序:
1. 平台:windows 7 direct9.0 VS2008
2. 打开 vs2008 选择新建项目 ->win32项目 ,输入项目名,选择空项目。
向“源文件”添加文件main.cpp
输入以下代码:
-
#include<d3d9.h>
-
-
#include <tchar.h>
-
-
#pragma comment(lib, "d3d9.lib")
-
#pragma comment(lib, "d3dx9.lib")
-
-
#define WINDOW_CLASS _T("UGPDX")
-
#define WINDOW_NAME _T("Blank D3D Window")
-
-
-
-
bool
InitializeD3D(
HWND
hWnd,
bool
fullscreen);
-
void
RenderScene();
-
void
Shutdown();
-
-
-
-
LPDIRECT3D9 g_D3D = NULL;
-
LPDIRECT3DDEVICE9 g_D3DDevice = NULL;
-
-
-
LRESULT
WINAPI MsgProc(
HWND
hWnd,
UINT
msg,
WPARAM
wParam,
LPARAM
lParam)
-
{
-
switch
(msg)
-
{
-
case
WM_DESTROY:
-
PostQuitMessage(0);
-
return
0;
-
break
;
-
-
case
WM_KEYUP:
-
if
(wParam == VK_ESCAPE) PostQuitMessage(0);
-
break
;
-
}
-
-
return
DefWindowProc(hWnd, msg, wParam, lParam);
-
}
-
-
-
int
WINAPI WinMain(
HINSTANCE
hInst,
HINSTANCE
prevhInst,
LPSTR
cmdLine,
int
show)
-
{
-
-
WNDCLASSEX wc = {
sizeof
(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
-
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
-
WINDOW_CLASS, NULL };
-
RegisterClassEx(&wc);
-
-
-
HWND
hWnd = CreateWindow(WINDOW_CLASS, WINDOW_NAME, WS_OVERLAPPEDWINDOW,
-
100, 100, 640, 480, GetDesktopWindow(), NULL,
-
wc.hInstance, NULL);
-
-
-
if
(InitializeD3D(hWnd,
false
))
-
{
-
-
ShowWindow(hWnd, SW_SHOWDEFAULT);
-
UpdateWindow(hWnd);
-
-
-
MSG msg;
-
ZeroMemory(&msg,
sizeof
(msg));
-
-
while
(msg.message != WM_QUIT)
-
{
-
if
(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
-
{
-
TranslateMessage(&msg);
-
DispatchMessage(&msg);
-
}
-
else
-
RenderScene();
-
}
-
}
-
-
-
Shutdown();
-
-
-
UnregisterClass(WINDOW_CLASS, wc.hInstance);
-
return
0;
-
}
-
-
-
bool
InitializeD3D(
HWND
hWnd,
bool
fullscreen)
-
{
-
D3DDISPLAYMODE displayMode;
-
-
-
g_D3D = Direct3DCreate9(D3D_SDK_VERSION);
-
if
(g_D3D == NULL)
return
false
;
-
-
-
if
(FAILED(g_D3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &displayMode)))
-
return
false
;
-
-
-
D3DPRESENT_PARAMETERS d3dpp;
-
ZeroMemory(&d3dpp,
sizeof
(d3dpp));
-
-
if
(fullscreen)
-
{
-
d3dpp.Windowed = FALSE;
-
d3dpp.BackBufferWidth = 640;
-
d3dpp.BackBufferHeight = 480;
-
}
-
else
-
d3dpp.Windowed = TRUE;
-
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
-
d3dpp.BackBufferFormat = displayMode.Format;
-
-
-
if
(FAILED(g_D3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
-
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_D3DDevice)))
-
{
-
return
false
;
-
}
-
-
return
true
;
-
}
-
-
-
void
RenderScene()
-
{
-
-
g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);
-
-
-
g_D3DDevice->BeginScene();
-
-
-
g_D3DDevice->EndScene();
-
-
-
g_D3DDevice->Present(NULL, NULL, NULL, NULL);
-
}
-
-
-
void
Shutdown()
-
{
-
if
(g_D3DDevice != NULL) g_D3DDevice->Release();
-
if
(g_D3D != NULL) g_D3D->Release();
-
-
g_D3DDevice = NULL;
-
g_D3D = NULL;
-
}
安装错误解决:
问题1..
d3d002/d3d002/main.cpp(46) : error C3861: “_T”: 找不到标识符
解决方法:加载 头文件:#include <tchar.h>
分享到:
相关推荐
这段代码设置了第一纹理阶段的纹理过滤器为三线性过滤,并采用边缘寻址模式。具体的实现可能因场景需求和性能优化而有所不同。 在"DirectX_Texture"这个压缩包文件中,很可能包含了用于演示以上概念的C++源代码和...
DirectX 9.0是微软推出的一套用于Windows平台的游戏开发和多媒体编程接口,它包含了丰富的功能,主要用于处理图形、音频、输入等与游戏和多媒体应用相关的工作。在这个压缩包中,你可能会找到关于3D游戏引擎开发的...
Direct9.0c,全称DirectX 9.0c,是DirectX的一个版本,包含了Direct3D、DirectInput、DirectPlay、DirectSound等多个子组件。Direct3D是其中的核心部分,专注于3D图形渲染,为游戏和高级应用程序提供了强大的硬件...
1. **DirectX 9.0**:DirectX是由微软开发的一系列API,用于Windows平台上的多媒体应用程序,特别是游戏和图形渲染。DirectX 9.0是其的一个版本,提供了对硬件加速的图形、声音和输入等硬件资源的访问,以提高性能和...
Direct9.0 SDK 安装包(6/8)
Direct9.0 SDK 安装包(1/8)
Direct9.0 SDK 安装包(8/8)
Direct3D 9.0是微软为Windows操作系统开发的一个图形应用程序接口(API),它主要用于创建高性能的2D和3D图形应用,特别是在游戏开发、视觉特效和科学可视化等领域。本教程将带你逐步走进Direct3D 9.0的世界,了解其...
DirectX 9.0是微软推出的一套用于Windows平台的游戏开发和多媒体编程接口,它包含了丰富的图形、音频和输入功能,极大地促进了3D游戏和多媒体应用程序的开发。本教程主要聚焦于DirectX 9.0在3D游戏开发中的应用,...
本程序是一个基于DirectX 9.0的简单示例,其目标是绘制一个蓝色的屏幕,这通常被用作初学者入门Direct3D编程的第一个步骤。 首先,我们需要理解Direct3D的基本工作流程,它包括初始化、设备创建、场景渲染和窗口...
1. **DirectX 9.0**:DirectX 9.0是微软推出的图形API(应用程序接口),旨在优化Windows平台上的硬件加速图形处理。它包括Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectSound等多个子组件,...
Direct9.0 多流渲染技术是微软DirectX 9.0 API中引入的一个特性,它允许开发者同时从多个数据源(流)渲染图形数据,极大地提高了3D图形的处理效率和灵活性。在传统的单流渲染中,所有的顶点属性(如位置、法线、...
Direct9.0着色是DirectX图形编程中的一个重要概念,它是通过编程控制游戏或应用程序中图形的外观,赋予三维模型和场景丰富的色彩和光影效果。本文将深入探讨颜色表示、顶点颜色以及着色技术在Direct9.0中的应用。 ...
Direct9.0 SDK 安装包(2/8)
Direct9.0 SDK 安装包(7/8)
总的来说,Direct3D 9.0 SDK 文档(中文版)为开发者提供了一个全面的指南,涵盖了从基础知识到高级特性的方方面面,有助于开发者掌握Direct3D技术并开发出高效的3D应用程序。无论是进行游戏开发、可视化工具制作还是...
Direct9.0C是Microsoft DirectX 9.0的组件之一,专注于图形编程,尤其是游戏和高性能应用程序中的3D渲染。天空盒(Skybox)是一种在3D场景中创建逼真天空背景的技术,它通过六个立方面贴图组合形成一个包围在场景外...
DirectX 9.0是微软推出的一套用于Windows平台的游戏开发和多媒体编程接口,它为开发者提供了丰富的功能,包括3D图形渲染、音频处理、输入设备控制等。本教程《DirectX9.0+3D游戏开发编程基础》旨在帮助初学者掌握...
本文将分步骤地指导读者如何在Visual Studio .Net(7.0)中设置一个简单的Direct3D 9.0应用程序,并利用向导和文档/视图架构实现它。假设读者已经具备一定的Direct3D和MFC基础,但可能没有将两者结合的经验。 我们...