// EtActionToolView.cpp : CEtActionToolView Ŭ·¡½ºÀÇ ±¸Çö // #include "stdafx.h" #include "EtActionTool.h" #include "EtActionToolDoc.h" #include "EtActionToolView.h" #include "RenderBase.h" #include "UserMessage.h" #include "PropertiesDlg.h" #include "ObjectLightFolder.h" #include "SignalCustomRender.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CEtActionToolView IMPLEMENT_DYNCREATE(CEtActionToolView, CView) BEGIN_MESSAGE_MAP(CEtActionToolView, CView) // Ç¥ÁØ Àμ⠸í·ÉÀÔ´Ï´Ù. ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview) ON_WM_DESTROY() ON_WM_SIZE() ON_WM_ERASEBKGND() ON_MESSAGE( UM_REFRESH_VIEW, OnRefresh ) ON_WM_PAINT() END_MESSAGE_MAP() // CEtActionToolView »ý¼º/¼Ò¸ê CEtActionToolView::CEtActionToolView() { // TODO: ¿©±â¿¡ »ý¼º Äڵ带 Ãß°¡ÇÕ´Ï´Ù. m_bActivate = false; m_bIdle = false; CSignalCustomRender::RegisterClass(); } CEtActionToolView::~CEtActionToolView() { CSignalCustomRender::UnRegisterClass(); } BOOL CEtActionToolView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: CREATESTRUCT cs¸¦ ¼öÁ¤ÇÏ¿© ¿©±â¿¡¼­ // Window Ŭ·¡½º ¶Ç´Â ½ºÅ¸ÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù. return CView::PreCreateWindow(cs); } // CEtActionToolView ±×¸®±â void CEtActionToolView::OnDraw(CDC* /*pDC*/) { CEtActionToolDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: ¿©±â¿¡ ¿ø½Ã µ¥ÀÌÅÍ¿¡ ´ëÇÑ ±×¸®±â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // CRenderBase::GetInstance().Render(); } // CEtActionToolView Àμâ BOOL CEtActionToolView::OnPreparePrinting(CPrintInfo* pInfo) { // ±âº»ÀûÀÎ Áغñ return DoPreparePrinting(pInfo); } void CEtActionToolView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: ÀμâÇϱâ Àü¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. } void CEtActionToolView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: Àμâ ÈÄ Á¤¸® ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. } // CEtActionToolView Áø´Ü #ifdef _DEBUG void CEtActionToolView::AssertValid() const { CView::AssertValid(); } void CEtActionToolView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CEtActionToolDoc* CEtActionToolView::GetDocument() const // µð¹ö±×µÇÁö ¾ÊÀº ¹öÀüÀº ÀζóÀÎÀ¸·Î ÁöÁ¤µË´Ï´Ù. { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEtActionToolDoc))); return (CEtActionToolDoc*)m_pDocument; } #endif //_DEBUG // CEtActionToolView ¸Þ½ÃÁö 󸮱â void CEtActionToolView::OnInitialUpdate() { CView::OnInitialUpdate(); CGlobalValue::GetInstance().SetView( this ); // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. if( m_bActivate == true ) return; m_bActivate = true; static CRenderBase g_RenderBase; CRenderBase::GetInstance().Initialize( GetSafeHwnd() ); char szStr1[2048] = { 0, }; char szStr2[2048] = { 0, }; char szStr3[2048] = { 0, }; GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "WorkingFolder", szStr1, 2048 ); GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "ShaderFolder", szStr2, 2048 ); GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "ResourceFolder", szStr3, 2048 ); if( strlen( szStr1 ) == 0 || strlen( szStr2 ) == 0 || strlen( szStr3 ) == 0 ) { CPropertiesDlg Dlg; Dlg.m_bDisableCancel = true; Dlg.DoModal(); } ((CObjectLightFolder*)CGlobalValue::GetInstance().GetRootLightObject())->LoadLightSetting( CString("") ); CGlobalValue::GetInstance().Reset(); } void CEtActionToolView::OnDestroy() { CView::OnDestroy(); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. if( CGlobalValue::IsActive() ) CGlobalValue::GetInstance().Finalize(); if( CRenderBase::IsActive() ) CRenderBase::GetInstance().Finalize(); } void CEtActionToolView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. if( CRenderBase::IsActive() ) CRenderBase::GetInstance().Reconstruction( cx, cy ); } BOOL CEtActionToolView::OnEraseBkgnd(CDC* pDC) { return FALSE; } LRESULT CEtActionToolView::OnRefresh( WPARAM wParam, LPARAM lParam ) { CRenderBase::GetInstance().Process(); Invalidate(); return S_OK; } void CEtActionToolView::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // ±×¸®±â ¸Þ½ÃÁö¿¡ ´ëÇØ¼­´Â CView::OnPaint()À»(¸¦) È£ÃâÇÏÁö ¸¶½Ê½Ã¿À. m_bIdle = !CRenderBase::GetInstance().Render(); }