#include <Dx2DView.h>
Public Member Functions | |
virtual void | ExecRender () |
virtual void | InitObject (void) |
virtual void | OnInitialUpdate () |
Protected Member Functions | |
CDx2DView () | |
virtual | ~CDx2DView () |
virtual void | AssertValid () const |
virtual void | Dump (CDumpContext &dc) const |
Definition at line 29 of file Dx2DView.h.
CDx2DView | ( | ) | [protected] |
Definition at line 26 of file Dx2DView.cpp.
00027 { 00028 cnstXYRate = true; 00029 }
~CDx2DView | ( | ) | [protected, virtual] |
Definition at line 33 of file Dx2DView.cpp.
void AssertValid | ( | ) | const [protected, virtual] |
Reimplemented from CExView.
Definition at line 64 of file Dx2DView.cpp.
00065 { 00066 CDxBaseView::AssertValid(); 00067 }
void Dump | ( | CDumpContext & | dc | ) | const [protected, virtual] |
Reimplemented from CExView.
Definition at line 71 of file Dx2DView.cpp.
00072 { 00073 CDxBaseView::Dump(dc); 00074 }
void ExecRender | ( | void | ) | [virtual] |
Reimplemented from CDxBaseView.
Definition at line 130 of file Dx2DView.cpp.
References CExView::clientRate, CDxBaseView::d3dParam, IDS_STR_FAIL_CLR_WND, IDS_STR_FAIL_RESTR_DX9DEV, IDS_STR_FAIL_TRNS_BAKBUF, IDS_STR_IMP_PROCESS, IDS_STR_UNSPT_DATA, CDxBaseView::lpBackBuffer, CDxBaseView::lpD3DDevice, CDxBaseView::lpSurface, CExView::pDoc, CExView::pFrame, CExDocument::preTitle, CExDocument::pstTitle, jbxwl::ResetDx9Device(), CExView::SetTitle(), CExDocument::Title, and CExView::Title.
00131 { 00132 // 00133 Title = pDoc->preTitle + pDoc->Title + pDoc->pstTitle; 00134 if (clientRate!=1.0) { 00135 CString szprcnt; 00136 szprcnt.Format(_T(" (%d%%)"), (int)(clientRate*100+0.5)); 00137 Title = Title + szprcnt; 00138 } 00139 CString mesg1, mesg2; 00140 mesg1.LoadString(IDS_STR_UNSPT_DATA); 00141 mesg2.LoadString(IDS_STR_IMP_PROCESS); 00142 Title = Title + _T(" ") + mesg1 + _T(" [") + mesg2 + _T("]"); 00143 this->SetTitle(Title); 00144 00145 HRESULT hr; 00146 00147 hr = lpD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,255), 1.0f, 0); 00148 if (FAILED(hr)) { 00149 CString mesg; 00150 mesg.LoadString(IDS_STR_FAIL_CLR_WND); 00151 MessageBox(_T("CDx2DView::ExecRender():\n\n") + mesg); 00152 return; 00153 } 00154 00155 hr = lpD3DDevice->StretchRect(lpSurface, NULL, lpBackBuffer, NULL, D3DTEXF_NONE); 00156 if (FAILED(hr)) { 00157 CString mesg; 00158 mesg.LoadString(IDS_STR_FAIL_TRNS_BAKBUF); 00159 MessageBox(_T("CDx2DView::ExecRender():\n\n") + mesg); 00160 return; 00161 } 00162 00163 hr = lpD3DDevice->Present(NULL, NULL, NULL, NULL); 00164 if (FAILED(hr)) { 00165 hr = ResetDx9Device(lpD3DDevice, &d3dParam, this); 00166 if (FAILED(hr)) { 00167 CString mesg; 00168 mesg.LoadString(IDS_STR_FAIL_RESTR_DX9DEV); 00169 MessageBox(_T("CDx2DView::ExecRender():\n\n") + mesg); 00170 pFrame->SendMessage(WM_CLOSE); 00171 //GetParentFrame()->DestroyWindow(); 00172 } 00173 else ExecRender(); 00174 } 00175 }
void InitObject | ( | void | ) | [virtual] |
Reimplemented from CDxBaseView.
Definition at line 179 of file Dx2DView.cpp.
References CExView::cmnHead, jbxwl::Dx9GetBackBuffer(), jbxwl::Dx9SurfaceFromMemory(), CExView::hasViewData, IDS_STR_FAIL_REINIT_OBJ, CDxBaseView::lpBackBuffer, CDxBaseView::lpD3DDevice, and CDxBaseView::lpSurface.
00180 { 00181 Dx9GetBackBuffer(lpD3DDevice, &lpBackBuffer); 00182 hasViewData = Dx9SurfaceFromMemory(lpD3DDevice, &lpSurface, cmnHead); 00183 if (!hasViewData) { 00184 CString mesg; 00185 mesg.LoadString(IDS_STR_FAIL_REINIT_OBJ); 00186 MessageBox(_T("CDx2DView::InitObject():\n\n") + mesg); 00187 return; 00188 } 00189 }
void OnInitialUpdate | ( | void | ) | [virtual] |
Reimplemented from CDxBaseView.
Definition at line 86 of file Dx2DView.cpp.
References CDxBaseView::bufferSize, CExDocument::cmnHead, CExView::cmnHead, CExFrame::doneErrorMessage, jbxwl::Dx9GetBackBuffer(), jbxwl::Dx9SurfaceFromMemory(), CExView::hasViewData, IDS_STR_FAIL_CRT_BAKBUF, IDS_STR_FAIL_GET_DX9DEV, IDS_STR_FAIL_TRNS_SURFACE, CDxBaseView::InitDevice(), CDxBaseView::lpBackBuffer, CDxBaseView::lpD3DDevice, CDxBaseView::lpSurface, CExView::origXSize, CExView::origYSize, CExView::pDoc, CExView::pFrame, CExView::SetWindowSize(), and CExView::sizeXYRate.
00087 { 00088 cmnHead = pDoc->cmnHead; 00089 if (isNull(cmnHead.grptr)) return; 00090 00091 origXSize = cmnHead.xsize; 00092 origYSize = cmnHead.ysize; 00093 sizeXYRate = (double)cmnHead.ysize/(double)cmnHead.xsize; 00094 00095 BOOL rslt = InitDevice(cmnHead.xsize, cmnHead.ysize); 00096 if (!rslt) { 00097 CString func, mesg; 00098 mesg.LoadString(IDS_STR_FAIL_GET_DX9DEV); 00099 MessageBox(_T("CDx2DView::OnInitialUpdate():\n\n") + mesg); 00100 pFrame->doneErrorMessage = TRUE; 00101 return; 00102 } 00103 00104 // グラフィックデータ 00105 bufferSize = Dx9GetBackBuffer(lpD3DDevice, &lpBackBuffer); 00106 if (bufferSize.x<0) { 00107 CString mesg; 00108 mesg.LoadString(IDS_STR_FAIL_CRT_BAKBUF); 00109 MessageBox(_T("CDx2DView::OnInitialUpdate():\n\n") + mesg); 00110 pFrame->doneErrorMessage = TRUE; 00111 return; 00112 } 00113 00114 // サーフェイスを作成して表示データを読み込む 00115 hasViewData = Dx9SurfaceFromMemory(lpD3DDevice, &lpSurface, cmnHead); 00116 if (!hasViewData) { 00117 CString mesg; 00118 mesg.LoadString(IDS_STR_FAIL_TRNS_SURFACE); 00119 MessageBox(_T("CDx2DView::OnInitialUpdate():\n\n") + mesg); 00120 pFrame->doneErrorMessage = TRUE; 00121 return; 00122 } 00123 00124 SetWindowSize(origXSize, origYSize); 00125 return; 00126 }