frmSplash.frm
上传用户:tjgy203
上传日期:2013-07-04
资源大小:621k
文件大小:5k
源码类别:

DirextX编程

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form frmSplash 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "游戏初始化"
  5.    ClientHeight    =   2820
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   3660
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   2820
  13.    ScaleWidth      =   3660
  14.    StartUpPosition =   2  '屏幕中心
  15.    Begin VB.ComboBox cmbDetail 
  16.       Height          =   315
  17.       Left            =   0
  18.       Style           =   2  'Dropdown List
  19.       TabIndex        =   5
  20.       Top             =   1800
  21.       Width           =   3615
  22.    End
  23.    Begin VB.ComboBox cmbRenderer 
  24.       Height          =   300
  25.       ItemData        =   "frmSplash.frx":0000
  26.       Left            =   0
  27.       List            =   "frmSplash.frx":0002
  28.       TabIndex        =   2
  29.       Text            =   "cmbRenderer"
  30.       Top             =   360
  31.       Width           =   3615
  32.    End
  33.    Begin VB.ComboBox cmbDisplay 
  34.       Height          =   315
  35.       Left            =   0
  36.       Style           =   2  'Dropdown List
  37.       TabIndex        =   1
  38.       Top             =   1080
  39.       Width           =   3615
  40.    End
  41.    Begin VB.CommandButton cmdProceed 
  42.       Caption         =   "继续(&P)"
  43.       Height          =   375
  44.       Left            =   1080
  45.       TabIndex        =   0
  46.       Top             =   2280
  47.       Width           =   1335
  48.    End
  49.    Begin VB.Label Label2 
  50.       AutoSize        =   -1  'True
  51.       BackStyle       =   0  'Transparent
  52.       Caption         =   "选择游戏级别:"
  53.       Height          =   180
  54.       Left            =   0
  55.       TabIndex        =   6
  56.       Top             =   1560
  57.       Width           =   1170
  58.    End
  59.    Begin VB.Label Label1 
  60.       BackStyle       =   0  'Transparent
  61.       Caption         =   "选择加速:"
  62.       Height          =   255
  63.       Left            =   0
  64.       TabIndex        =   4
  65.       Top             =   120
  66.       Width           =   3735
  67.    End
  68.    Begin VB.Label Label4 
  69.       AutoSize        =   -1  'True
  70.       BackStyle       =   0  'Transparent
  71.       Caption         =   "选择显示模式:"
  72.       Height          =   180
  73.       Left            =   0
  74.       TabIndex        =   3
  75.       Top             =   840
  76.       Width           =   1170
  77.    End
  78. End
  79. Attribute VB_Name = "frmSplash"
  80. Attribute VB_GlobalNameSpace = False
  81. Attribute VB_Creatable = False
  82. Attribute VB_PredeclaredId = True
  83. Attribute VB_Exposed = False
  84. '****************************************************************************
  85. '人人为我,我为人人
  86. '枕善居汉化收藏整理
  87. '发布日期:05/05/06
  88. '描  述:DirectX游戏编程-----3D机器人模型
  89. '网  站:http://www.mndsoft.com/
  90. 'e-mail:mnd@mndsoft.com
  91. 'OICQ  : 88382850
  92. '****************************************************************************
  93. Dim e_Dx As New DirectX7
  94. Dim e_Dd As DirectDraw7
  95. Dim e_D3d As Direct3D7
  96. Dim e_Enum As Direct3DEnumDevices
  97. Dim I As Integer, sRenderer As String
  98. Dim e_DModes As DirectDrawEnumModes
  99. Dim e_ddsd As DDSURFACEDESC2
  100. Dim DisplayModesRef() As Byte
  101. Private Sub cmdProceed_Click()
  102. Dim sGuid As String, bDetail As Byte, Width As Integer, Height As Integer, BPP As Integer
  103. Select Case cmbRenderer.Text
  104.     Case "硬件加速"
  105.         sGuid = "IID_IDirect3DHALDevice"
  106.     Case "软件加速"
  107.         sGuid = "IID_IDirect3DRGBDevice"
  108.     Case "未知设备"
  109.         MsgBox "请选择设备."
  110. End Select
  111. Select Case cmbDetail.Text
  112.     Case "低 (快速)"
  113.         bDetail = 0
  114.     Case "高 (慢)"
  115.         bDetail = 1
  116. End Select
  117. e_DModes.GetItem DisplayModesRef(cmbDisplay.ListIndex), e_ddsd
  118. frmMain.init_dx CInt(e_ddsd.lWidth), CInt(e_ddsd.lHeight), CInt(e_ddsd.ddpfPixelFormat.lRGBBitCount), sGuid, CInt(bDetail)  ', chkBuffer.Value
  119. End Sub
  120. Private Sub Form_Load()
  121. '''''''''GET RENDERER INFO
  122. Set e_Dd = e_Dx.DirectDrawCreate("")
  123. Set e_D3d = e_Dd.GetDirect3D
  124. Set e_Enum = e_D3d.GetDevicesEnum
  125. For I = 1 To e_Enum.GetCount()
  126. sRenderer = e_Enum.GetGuid(I)
  127. Select Case sRenderer
  128.     Case "IID_IDirect3DRGBDevice"
  129.     cmbRenderer.AddItem "软件加速", 0
  130.     cmbRenderer.Text = "软件加速"
  131.     Case "IID_IDirect3DHALDevice"
  132.     cmbRenderer.AddItem "硬件加速", 0
  133.     cmbRenderer.Text = "硬件加速"
  134.     Case Else
  135.     cmbRenderer.AddItem "未知设备", 0
  136. End Select
  137. Next I
  138. ''''''''''''''DETAIL LEVELS
  139. cmbDetail.AddItem "低 (快速)", 0
  140. cmbDetail.AddItem "高 (慢)", 1
  141. cmbDetail.Text = "高 (慢)"
  142. ''''''''''''''''RESOLUTIONS
  143.     'Dim DisplayModesEnum As DirectDrawEnumModes
  144.     'Dim ddsd2 As DDSURFACEDESC2
  145.     'Dim dd As DirectDraw7
  146.     'Set dd = m_dx.DirectDrawCreate(sGuid)
  147.     e_Dd.SetCooperativeLevel Me.hWnd, DDSCL_NORMAL
  148.     Dim Curr As Integer
  149.     Set e_DModes = e_Dd.GetDisplayModesEnum(0, e_ddsd)
  150.     For I = 1 To e_DModes.GetCount()
  151.         e_DModes.GetItem I, e_ddsd
  152.         If e_ddsd.lWidth > 600 And e_ddsd.lWidth <= 1024 Then
  153.         If e_ddsd.lHeight > 400 And e_ddsd.lHeight <= 768 Then
  154.         If e_ddsd.ddpfPixelFormat.lRGBBitCount >= 16 Then
  155.             cmbDisplay.AddItem CStr(e_ddsd.lWidth) & "x" & CStr(e_ddsd.lHeight) & "x" & CStr(e_ddsd.ddpfPixelFormat.lRGBBitCount)
  156.             cmbDisplay.Text = CStr(e_ddsd.lWidth) & "x" & CStr(e_ddsd.lHeight) & "x" & CStr(e_ddsd.ddpfPixelFormat.lRGBBitCount)
  157.             ReDim Preserve DisplayModesRef(Curr)
  158.             DisplayModesRef(Curr) = I
  159.             Curr = Curr + 1
  160.         End If
  161.         End If
  162.         End If
  163.     Next
  164. End Sub