DirectX9 SDK Samples(1) Tutorial1-Creating a device

Direct9入门教程|Direct9官方提供的tutorial文件自己翻译的|DirectX创建设备  自己翻译的官方帮助文档里面的教程一,因为昨晚自己弄出来觉得很高兴哈。有新手觉得难入手的不妨看下我这篇。最下面有VC的设置。(我的SDK版本比较老了哈,是9.0April2006) 第一步 建立windows窗口 每一个windows程序做的第一件事就是当它运行时要产生一个程序窗口显示给使用者看。为做到这个,CreateDevice样例是在它的WinMain函数里面开始运行的。下面这个 阅读详情

该认真学学DX了。看过不少入门书,但总没有好好总结和实践,现在以SDK的例子为资料学习DX,并且记录下重点。先来篇简单的Tutorial_1。

1.Step 1 - Creating a Window

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
	// Register the window class.
	WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, 
	GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
	"Direct3D Tutorial", NULL };

	RegisterClassEx( &wc );

	// Create the application's window.
	HWND hWnd = CreateWindow( "Direct3D Tutorial", "Direct3D Tutorial 01: CreateDevice", 
	WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
	GetDesktopWindow(), NULL, wc.hInstance, NULL );
这个是WINDOWS编程的基础,就不说了。


2.Step 2 - Initializing Direct3D

if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
	return E_FAIL;
在这一步,先要创建一个D3D Object。然后设置D3D参数,如下:

D3DPRESENT_PARAMETERS d3dpp; 
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

接下来需要创建D3D设备:

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                  &d3dpp, &g_pd3dDevice ) ) )


3.Step 3 - Handling System Messages

// The message loop.
MSG msg; 
while( GetMessage( &msg, NULL, 0, 0 ) )
{
    TranslateMessage( &msg );
    DispatchMessage( &msg );
}
处理消息循环,嗯。

LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
        case WM_DESTROY:
            PostQuitMessage( 0 );
            return 0;

        case WM_PAINT:
            Render();
            ValidateRect( hWnd, NULL );
            return 0;
    }

    return DefWindowProc( hWnd, msg, wParam, lParam );
}
这个例子跟以前我看到的不一样,将绘制操作放在了WM_PAINT中,呃,在这个例子中也无妨,因为不需要做其他更新工作。


4.Step 4 - Rendering and Displaying a Scene

下面进入Render()。

// Clear the back buffer to a blue color
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
清理函数,第一二个参数代表清理区域为整个客户区。第三个代表清理对象为后台缓存,也可以为深度缓存或模版缓存或三者组合。

// Begin the scene
g_pd3dDevice->BeginScene();

// Rendering of scene objects happens here

// End the scene
g_pd3dDevice->EndScene();
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );


嗯,基本上这些函数参数都不需要改变。


5.Step 5 - Shutting Down

VOID Cleanup()
{
    if( g_pd3dDevice != NULL)
        g_pd3dDevice->Release();
    if( g_pD3D != NULL)
        g_pD3D->Release();
}
D3D9 Samples(1)--CreateDevice D3D9 Sample(1)—CreateDevice               运行 Microsoft DirectX SDK (June 2010) 中的 DirectX Sample Browser。找到Tutorial 1: CreateDevice,然后点Install Project安装这个项目。先编译运行下项目,看看效果:             这个例子 阅读详情

相关推荐

DirectX 9 SDK 9.0 Download DirectX 9 SDK 下载

DirectX SD9.0K包含了开发尖端多媒体应用软件不可或缺的开发工具,以及runtime、headers及程序库、范例执行文件、文件、DirectX工具、并且同时支援C++ 以及 Visual Basic开发软件.发现很多人都在找DirectX 8,那么只有一个想法想在VB.NET中引用,这样的话可以使用DirectX 9 同样支持Visual Basic.net

DXSDK 重大版本变化记录

<br />dxsdk各个版本对开发工具和平台的支持变化很大,这里记录一下,以免经常弄错<br />2004年夏不再支持VC6,不再提供directplay和directshow,不再包含appwizard(可以使用sample browser安装例子工程,下同)<br />2005年2月不再支持windows2000,d3dx开始以动态链接库发布<br />2005年4月完全去除directshow,转移到Platform SDK(Platform SDK 后来改为windows sdk)<br />20

staryy的专栏 2272

MATLAB实现了UR5机械臂在可变有效载荷条件下的增益调度稳健滑动模式轨迹跟踪控制。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

DirectX9 SDK Samples(4) Tutorial 4: Lights

这次教程涉及到材质和光照。 Step 1 - Initializing Scene Geometry struct CUSTOMVERTEX { D3DXVECTOR3 position; // The 3D position for the vertex. D3DXVECTOR3 normal; // The surface normal for the vertex

700

用C#实现面向对象编程之继承和多态概念的示例程序

这是文章《面向对象编程之继承和多态》的配套示例程序。在学习面向对象编程时都学习到三个概念:封装、继承、多态。封装已经讲解过,可以翻一下本博客的发表记录。所谓的继承,就是父类已经实现的属性、方法等,子类也跟着有,无需重复实现。所谓的多态,就是父类只定义的属性、方法等的名称、数据类型、参数,具体由子类实现。

ScreenInk 0.0.1.exe

ScreenInk 0.0.1.exe

DirectX9 SDK Samples(6) Tutorial 6: Using Meshes

嗯,终于到了使用网格的教程了。 Step 1 - Loading a Mesh Object 首先要定义一个网格缓冲区。 LPD3DXBUFFER pD3DXMtrlBuffer; 然后就是读入网格啦~别看很复杂,看清楚了,有一部分是重复的。 // Load the mesh from the specified file if( FAILED( D3DXLoadMeshFromX(

824

外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货 数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识 部分品种还提

外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货。数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识。部分品种还提供盘口五档或十档挂单数据。所有数据按交易日压缩打包,解压后为CSV格式,便于直接读取分析。 数据源:CMES金融数据库

DirectX SDK (August 2008).Direct3D 9.官方指导教程 (五)

Tutorial 5:使用纹理贴图(Using Texture Maps)虽然光照和材质已经使场景更加的真实,但还是没有什么高级显示系统可以比得上表面纹理贴图更加真实。纹理可以想像为热缩包装到表面的墙纸。你可以将木头的纹理贴在立方体上使得立方体看起来就像是木头做的。这里的Texture工程是向第四个教程中的圆柱体贴上香蕉皮纹理,本章包括如何加载纹理、创建顶点、显示贴上纹理的物体。本教程执行如下步骤...

weixin_30401605的博客 219

三相PWM整流器双闭环控制仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了三相PWM整流器双闭环控制的Simulink仿真模型,重点实现电压外环与电流内环的协同控制策略,通过仿真验证系统在稳态与动态工况下的运行性能。模型涵盖主电路拓扑结构、PWM调制技术、坐标变换(如abc/dq变换)、PI控制器设计及双闭环控制逻辑的实现,能够实现单位功率因数运行、直流侧电压稳定控制以及网侧电流正弦化等目标。同时,文档进一步拓展至VOC(虚拟同步发电机控制)与SVPWM调制相结合的高级控制策略,提升了系统的动态响应能力与控制灵活性。; 适合人群:具备电力电子技术与电力系统基础知识,熟悉Simulink仿真环境的电气工程及相关专业的本科生、研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解三相PWM整流器的工作原理及其双闭环控制策略的设计方法;②掌握基于Simulink的电力电子系统建模、仿真与控制系统调试技术;③为后续研究电压源换流器(VSC)、虚拟同步控制(VOC)、微电网并网控制等先进电力电子控制技术奠定理论与实践基础。; 阅读建议:建议结合经典电力电子教材与本仿真模型同步学习,重点关注PI控制器参数整定、坐标变换模块的搭建逻辑以及系统稳定性分析方法,有条件者可进一步将仿真结果对接实际硬件平台进行实验验证,以深化对控制策略工程应用的理解。

基于蚁群算法的多配送中心的车辆调度问题的研究(Matlab代码实现)

内容概要:本文聚焦于基于蚁群算法的多配送中心车辆调度问题,通过构建数学模型将复杂的物流路径规划问题转化为可计算的组合优化问题,并采用仿生智能优化算法——蚁群算法进行求解,旨在实现配送路径的最优配置,从而降低运输成本、提升配送效率。研究利用Matlab平台完成了算法的设计、实现与仿真验证,详细阐述了算法的关键参数设置、信息素更新机制、路径构造过程及收敛性分析,并结合具体算例证明了该方法在解决多配送中心车辆路径问题上的有效性与实用性。同时,文档还展示了智能优化算法在物流调度、路径规划等领域的广泛应用前景,提供了丰富的科研方向和技术拓展参考。; 适合人群:具备一定Matlab编程能力,从事运筹优化、智能算法研究或物流系统设计的研究生及科研人员;对车辆路径问题(VRP)及其多中心、多车型等变体问题有研究兴趣的高年级本科生或工程技术人员。; 使用场景及目标:①解决实际物流系统中多配送中心环境下的车辆调度优化问题;②深入理解并掌握蚁群算法在NP-hard类组合优化问题中的建模思路与编程实现技巧;③为毕业论文、科研项目或工程实践提供可复用的算法框架与代码基础;④推动智能优化算法在智慧物流、城市配送等实际场景中的应用落地。; 阅读建议:建议读者结合文中提供的网盘资源(如完整代码、测试数据集)动手复现算法过程,对比不同参数对收敛性能的影响,并尝试将该算法拓展至带时间窗(VRPTW)、多车型或多目标等更复杂的调度场景中,以深化对智能优化机制的理解与应用能力。

DirectX9 SDK Samples(2) Tutorial2-Rendering Vertices

这一次讲的是渲染顶点。 Step 1 - Defining a Custom Vertex Type struct CUSTOMVERTEX { FLOAT x, y, z, rhw; // The transformed position for the vertex. DWORD color; // The vertex color. }; #define D

757

ubuntu20.04开机黑屏卡在/dev/sda1:clean,***files,***blocks,解决心得记录

这个问题如果你百度,会发现目前有很多种解决方法。 有更新显卡驱动的,有卸载上一次安装软件的,还有各种奇奇怪怪的故障原因。 如果你是属于上述情况,那么按照百度和论坛的各种指引操作一般都能解决。 但我这里主要说一种特殊情况,就是我什么也没有操作,我什么也没干。就是正常使用系统关了机突然就报错了。 这也是自己亲自遇到的问题,做个小记录方便以后自己回顾。 上一次出现这种情况我重装系统了,这次用了两个月又出现了,重装成本太高,我接受不了,于是找到解决办法。 首先找个终端进入,进入终端的方法很多,用安装u盘

qq_41517017的博客 2万+

DirectX 11 SDK文档

原文地址:http://blog.youkuaiyun.com/cmt100/article/details/6343274 总结       这是一个初步的教程。我们将通过必要的步骤来创建一个Win32 Application。我们创建一个空白的窗口为DirectX 11做准备。 创建窗口       每一个窗口应用程序需要至少一个窗口对象。甚至在开始获得

痞子龙3D编程 5485

Verilog实现FIR滤波器

1、FIR滤波器简介 不追究FIR滤波器的深层含义,我们只关注如何实现;可以看出,FIR滤波器的本质就是延迟、系数相乘与求和,如下图: 2、设计 基于以上分析,按照三级流水实现FIR滤波器设计:信号延迟-系数相乘-求和 `timescale 1ns / 1ps module fir( input clk, input rst_n, input [3:0]din, output reg [9:0]dout ); // data reg reg [3:0]din1; reg [3:.

CLL_caicai的博客 1万+

安路科技FPSoC开发实战:从芯片特性到边缘计算应用

本文深入解析安路科技FPSoC芯片在边缘计算领域的开发实战,重点介绍SALDRAGON系列芯片的异构计算架构优势,包括RISC-V/ARM处理器与FPGA的协同工作。通过工业控制和智能视觉应用案例,展示硬件加速实现与低功耗设计技巧,帮助开发者高效利用FPSoC进行边缘计算应用开发。

weixin_29248611的博客 375

DirectX9.0 Tutorial 1 CreateDevice

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

牛牛的梯田 1113

STM32F4驱动海康工业相机实战:从PWM信号到精准触发拍照(附完整代码)

本文详细介绍了如何使用STM32F4开发板驱动海康工业相机,实现PWM信号精准触发拍照的完整方案。从硬件连接到PWM信号生成,再到相机触发配置与延迟补偿,提供了实战经验和完整代码,帮助开发者解决工业相机硬件触发中的关键问题。

weixin_33716941的博客 694

Direct3D 11 Tutorial 1: Basics_Direct3D 11 教程1:基础

Github-LearnDirectX-DX3D11 tutorial01 概述 在这第一篇教程中,我们将通过介绍创建最小Direct3D应用程序所必需的元素。每一个Direct3D应用程序必需拥有这些元素才能正常地工作。这些元素包括设置窗口和设备对象,以及在窗口上显示颜色。 资源目录 (SDK root)\Samples\C++\Direct3D11\Tutorials\T...

433

SAP S4业务伙伴(BP)实战指南:从角色分配到数据同步的完整流程

本文详细解析了SAP S4业务伙伴(BP)功能,从基础概念到实战操作,涵盖角色分配、数据同步及常见问题排查。通过BP机制,企业可高效管理客户、供应商等多重身份,实现数据共享和动态切换,显著提升主数据管理效率。特别适合SAP实施顾问和ERP管理员参考。

y2z3a4b5c的博客 868

SOLIDWORKS转CAD字体终极选择:TrueType vs SHX,哪个才是你图纸协作的“安全牌”?

本文深入探讨SOLIDWORKS转CAD工程图中的字体选择问题,对比TrueType与SHX字体在DWG文件协作中的表现。通过真实案例揭示字体映射的兼容性陷阱,提供企业级字体管理方案,帮助工程师规避版本差异、系统依赖和法律风险,确保图纸协作的稳定性。

weixin_34233974的博客 264

游戏开发教程c#

本文适合有一定编程基础的爱好者!本文不会涉及基本的语法等内容,本文 适合所有游戏开发初学者,本文从Microsoft DirectX 9.0 SDK (Summer 2004)中的D3D下Tutorials文件夹下的例子开始!!    关键字:c#  游戏开发  3D  教程    C#(读作“C sharp”)是一种简单、现代、面向对象且类型安全的编程语言。C 和 C++ 程序员能很快熟悉它。C

一夜听春雨专栏 1977

告别LM2596!用LM5175打造400W自动升降压数控电源(附完整电路图与代码)

本文详细介绍了如何利用LM5175芯片设计400W自动升降压数控电源,替代传统的LM2596方案。通过四开关Buck-Boost拓扑结构,LM5175实现了高达98%的转换效率和400W大功率输出,支持无缝升降压切换。文章涵盖芯片选型、电路设计、PCB布局及STM32数控实现,为工程师提供完整的实践指南。

weixin_27032989的博客 597

DirectX Tutorial学习笔记(一)

Direct3D程序最基本的流程是:创建Windows窗口、创建设备、处理消息循环、物体图形显示、退出和清理。 在MDX的世界里,窗口创建和处理消息循环我们交给Windows Forms模型来做, 剩下最主要的任务就是创建设备和物体图形显示。Direct3D设备是Direct3D开发最基本的入口,它定义了Direct3D所有的绘图组件,大部分的操作都需要从Direct3D设备开始。 创建设备...

weixin_30691871的博客 528

(数字图像处理MATLAB+Python)第五章图像增强-第一节:图像增强概述和基于灰度级变换的图像增强

图像增强(Image Enhancement):指不考虑图像降质原因,利用各种数学方法和变换手段,增强图像中人们感兴趣部分或提高有用的图像特征的清晰度。从图像质量来看,图像增强提高了图像的可懂度,改善了图像的视觉效果例如在现实场景中,针对那些对比度较差、视觉效果不好的图像,我们就可以利用图像增强改善视觉质量图像增强可分为如下几种基于灰度级变换的图像增强基于直方图修正的图像增强基于照度反射模型的图像增强基于模糊技术的图像增强基于伪彩色处理的图像增强其他图像增强方法分段线性灰度级变换。

快乐江湖的博客 3332

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 腾讯面试归来
下一篇: DirectX9 SDK Samples(2) Tutorial2-Rendering Vertices
HowdChow
博客等级 码龄15年 10粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值