VB中DirectX绘图_DX基础以及绘图设备建立

VB 中DirectX 绘图_DX 基础以及绘图设备建⽴
DirectX 函数库,就是Microsoft 为开发游戏软件与⾼效率多媒体应⽤程序所开发出来的API 。包含许多函数库模块,让以Window 系统为平台的游戏或多媒体应⽤能获得更⾼的执⾏效率、强化3D 图形成像以及丰富的声⾳效果。同时DirectX 为程序开发⼈员提供了⼀套硬件驱动标准,不需要重新编写硬件驱动程序。多媒体课件制作工具
DirectX 插件:运⾏期函数库和软件开发⼯具包(SDK )组成。⽤户执⾏DirectX 技术所开发的应⽤时,程序会调⽤DirectX 运⾏期的函数库来进⾏相关硬件的驱动控制(Win NT4.0后的操作系统都包含了运⾏期函数库)。Win DirectX SDK 主要API 控件:Direct3D (D3D )3D 游戏开发标准,3D 图像的处理⼯作。游戏运⾏时,需要3D 绘图,D3D 控件向显卡发出成像要求,让显卡完成图像的贴图操作。DirectDraw 负责2D 图像处理,DX8.0以后两个绘图处理控件就合并到DirectGraphics ⾥了。DirectSound 负责⾳频的处理,提供声卡的共同驱动标准,让应⽤程序可直接控制硬件的⾳频单元。DirectMusic ⽀持MIDI 格式⽂件播放。DirectShow 多媒体⽂件播放的主要控件,⽐Dsound 和Dmusic ⽀持更多媒体格式。DirectInput 处理系统输⼊设备管理与控制,不通过操作系统直接对设备存取。DirectPlay 8.0新加⼊负责⽹络数据传输的控制与管理。
由于9.0以后的版本仅⽀持VB.NET ,只能安装VB ⽀持的最⾼版本8.X 。
VB 中对DirectX 插件的引⽤,⼯程-引⽤-选择DirectX 8 for Visual Basic Type Library 。
DirectGraphics 中取消了2D 图像绘制的DirectDraw 控件,通过Direct3D 来进⾏所有图像的绘制操作。使⽤D3D 控件绘图⼀般流程是:
1.使⽤Direct3D ,⾸先声明Direct3D 对象(Direct3D8),D3D 显⽰设备对象(Direct3DDevice8),图像显⽰模式(D3DDISPLAYMOD ),D3D 相关参数设置对象(D3DPRESENT_PARAMETERS ),⽤于硬件信息保存的D3DCAPS8数据类型变量。
2.D3D 是控制显⽰硬件绘图操作的主要成员,D3D 对象的建⽴:
Set myD3D = myDX.Direct3Dcreate()
3.在窗⼝中使⽤D3D 的绘图功能,⾸先要⽤D3D myD3D 内置的GetAdapterDisplayMode 命令将窗⼝显⽰模式信息保存到所设置的D3DDISPLAYMODE 数据类型变量myMode 中。
中财办谈共同富裕
myD3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, myMode
D3D 对象内所设置的数据值:
Windowed 是否为窗⼝模式,0代表全屏显⽰。
SwapEffect 设置换页模式
BackBufferFormat 设置背景缓冲区格式(BackBufferCount 背景缓冲区数量,BackBufferHeight 和Width 背景缓冲区⾼度和宽度)。
5.获取硬件⽀持内容,计算机的硬件设备都不同,在配置D3Ddevice 显⽰设备对象之前需要先获得⽤户显⽰硬件的⽀持信息。可以通过D3D 对象的getDeviceCapsh 函数将硬件⽀持信息保存到D3DCAPS 数据类型变量myCap 中。两个参数分别为设备名称和设备类型
myD3D.GetDeviceCaps D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, myCap
氍毹上的尘梦D3DADAPTER_DEFAULT ,默认的计算机显⽰设备标识名称。
D3DDEVTYPE_HAL ,指定设备的使⽤类型为硬件层。(_REF
软件模拟 _SW 不⽀持)。
然后将getDeviceCaps 获得的⽀持信息设置到myflag 上。
6.建⽴D3Ddevice8对象,D3Ddevice8负责对指定显卡执⾏各种图形显⽰的控制,⼀个对象相对于⼀个显卡的控制接⼝。⼀般⼀个pc 装⼀个显⽰输出设备所以⼀般建⽴⼀个D3Ddevice8对象。
Set myDev = myD3D.CreateDevice(Adapter,DeviceType,FocusWindow,BehaviorFlags,PresentationParameters)
Adapter 为使⽤的适配器⼯程。同获取硬件信息时的设备名称。
DeviceType 为设备类型,同获取硬件信息时参数。
FocusWindow 指定Device 对象使⽤的窗⼝。
BehaviorFlags 为对象⾏为控制标识myFlag
后藤美帆PresentationParameters 保存D3D 对象
Set myDev = myD3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, myPP)
7.场景在BeginScene 和EndScene 两命令直接进⾏,所有图像的加载,移动,显⽰删除等控制设置。
'场景安排设定
myDev.BeginScene
....
myDev.Clear 0, ByVal 0, D3DCLEAR_TARGET, &H0&, 1#, 0  '清除画⾯
myDev.SetTexture 0, myBMP  ‘ 设置指定图像
myDev.DrawPrimitiveUP D3DPT_TRIANGLESTRIP, 2, myVertex(0), mySize
'绘出⽂字
myD3DX.DrawText myFont, &HFFFF0000, myStr1, myArea1, DT_RIGHT
巷道
myFont.DrawTextW myStr2, -1, myArea2, DT_LEFT, &HFF00FF00
....
'此处仅列举⼏种绘制操作可以加载的代码帕蒂尼
myDev.EndScene
8.'输出显⽰,利⽤D3Ddev对象内置的Present命令将前⾯场景中设置的操作依次输出⽰。
myDev.Present ByVal 0, ByVal 0, 0, ByVal 0
参数:SourceRect源矩阵,DestRect⽬标矩阵。⽤户换页状态除了D3DSWAPEFFECT_COPY或在COPY_VSYN时都设为ByVal 0。DestWindowOverride⽬标窗⼝重载模式,为0代表使⽤D3DPERSENT_PARAMETERS变量设置的hWndDeviceWindow属性。DirtyRegion⼀般不使⽤设0。
9.⼀般在程序结束时需要将建⽴的对象释放以免浪费资源。
Set myDX = Nothing
Set myD3D = Nothing
Set myDevice = Nothing

本文发布于:2024-09-22 06:50:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/145933.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:硬件   设备   对象   设置   操作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议