00001 #pragma once
00002
00003 #include "ExClass.h"
00004 #include "Dx9.h"
00005
00006 #include <mmsystem.h>
00007
00008
00009
00010 namespace jbxwl {
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00051
00091 class CDxBaseView;
00092
00093
00095
00117 HRESULT ResetDx9Device(LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*, CDxBaseView* pviw=NULL);
00118
00119
00120
00122
00123
00124 class CDxBaseView : public CExView
00125 {
00126 public:
00127 LPDIRECT3D9 lpD3D;
00128 LPDIRECT3DDEVICE9 lpD3DDevice;
00129 LPDIRECT3DSURFACE9 lpBackBuffer;
00130 LPDIRECT3DSURFACE9 lpSurface;
00131 LPDIRECT3DTEXTURE9 lpTexture;
00132 D3DPRESENT_PARAMETERS d3dParam;
00133
00134 LPDIRECTINPUT8 lpDInput;
00135 LPDIRECTINPUTDEVICE8 lpDMouse;
00136 LPDIRECTINPUTDEVICE8 lpDKeyBoard;
00137
00138 POINT bufferSize;
00139
00140 public:
00141 CDxBaseView();
00142 virtual ~CDxBaseView();
00143
00144 protected:
00145 virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
00146
00147 public:
00148 virtual void OnInitialUpdate(void) {}
00149 virtual void SetState(void) {}
00150 virtual void ExecRender(void) {}
00151 virtual void ClearObject(void);
00152 virtual void InitObject(void) { SetState();}
00153 virtual void SetParameter(D3DPRESENT_PARAMETERS* d3dParam, int xsize, int ysize);
00154
00155 POINT GetWindowDisplaySize(POINT pt);
00156 BOOL InitDevice(int xsize=0, int ysize=0, CWnd* cwnd=NULL);
00157
00158 virtual int GetMouseButton();
00159 DECLARE_MESSAGE_MAP()
00160 };
00161
00162
00163
00165
00166
00167
00168 class CDxVTXBaseView : public CDxBaseView
00169 {
00170 public:
00171 LPDIRECT3DVERTEXBUFFER9 vb, lb;
00172
00173 D3DXMATRIX matWorld, matView, matProj;
00174 D3DXMATRIX matTrans, matTemp;
00175 D3DXMATRIX matRotate, matRotateX, matRotateY, matRotateZ;
00176 D3DXVECTOR3 center;
00177
00178 double rTime, gTime, lTime, startTime;
00179 double angle, angleX, angleY, angleZ;
00180 double mWheelAc;
00181 double mWheelNotch;
00182 bool rotation;
00183 bool reverseZ;
00184
00185 public:
00186 CDxVTXBaseView();
00187 virtual ~CDxVTXBaseView();
00188
00189 protected:
00190 virtual void OnDraw(CDC* pDC);
00191
00192 public:
00193 virtual void OnInitialUpdate(void) {}
00194 virtual void SetState(void) {}
00195 virtual void ExecRender(void) {}
00196 virtual void InitObject(void) {SetState();}
00197
00198 virtual BOOL PrepareVB(void) {return TRUE;}
00199 virtual void ReleaseVB(void) {DXRELEASE(vb); DXRELEASE(lb);}
00200
00201 virtual void SwitchRotation(void);
00202 virtual void ExecRotation(void);
00203
00204 virtual void ExMouseWheel(void) {}
00205 virtual void ExRotationAngle(void) {}
00206
00207 DECLARE_MESSAGE_MAP()
00208 afx_msg void OnTimer(UINT_PTR nIDEvent);
00209 };
00210
00211
00212 }