// This is it... HRESULT DDVideo::Play(ZString& strPath, bool bWindowed) { m_bWindowed = bWindowed; HRESULT hr; if( FAILED( hr = InitDirectDraw() ) ) { ZDebugOutput("InitDirectDraw() failed\n"); return hr; } m_pVideo=new CDShow(); if (m_pVideo==NULL) return FALSE; if(!( m_pVideo->Open(strPath,m_lpDD) )) { // remember to destroy DShow (pVideo) object to clean up after us. // Return FALSE to let caller know we failed. ZDebugOutput("m_pVideo->Open failed\n"); return FALSE; } else m_pVideo->Start(); return S_OK; }
void ZTraceImpl(const char* pcc) { if (g_bEnableTrace) { ZDebugOutput(ZString((float)g_line, 4, 0) + g_strSpaces + ZString(pcc) + "\n"); } g_line++; }
bool Win32App::OnAssert(const char* psz, const char* pszFile, int line, const char* pszModule) { ZDebugOutput( ZString("assertion failed: '") + psz + "' (" + pszFile + ":" + ZString(line) + ")\n" ); //return _CrtDbgReport(_CRT_ASSERT, pszFile, line, pszModule, psz) == 1; return true; }
/*------------------------------------------------------------------------- * SQLWhatsWrong *------------------------------------------------------------------------- * Purpose: * Diagnostics for odbc calls * * Side Effects: * Breaks on anything but SQL_SUCCESS */ void SQLWhatsWrong(SQLSMALLINT ssiHandleType, SQLHANDLE sh) { SQLCHAR scState[5]; SQLINTEGER siNativeError; SQLCHAR scMsgText[512]; SQLSMALLINT cbMsgText; SQLRETURN sqlret = SQLGetDiagRecA(ssiHandleType, sh, 1, scState, &siNativeError, scMsgText, sizeof(scMsgText), &cbMsgText); ZDebugOutput((char *) scMsgText); // BIG hack to work with zone profile if (7312 == siNativeError) return; // If our query is deadlocked, let's try again if (1205 == siNativeError) { debugf("Query deadlocked. Retry #%d.", g_cSQLRetries); g_fSQLRetry = true; g_cSQLRetries++; SQLCloseCursor(g_hstmt_Last); // we get an invalid cursor state without this. Sleep(50 * g_cSQLRetries); return; } if(g_pSQLSite) // sometimes NULL because g_pSQLSite is sometimes constructed (and set to NULL) sometime after InitSql() has its way with it. g_pSQLSite->OnMessageBox((char *) scMsgText, "FedSrv SQL Error", MB_OK | MB_ICONINFORMATION); else { debugf("SQL Error %s\n", scMsgText); printf("SQL Error %s\n", scMsgText); } // if we can't access the database, we're screwed, so give up. // TODO: Make the exit more graceful //assert(0); // let's at least break in debug build //exit(EXIT_FAILURE); }
TRef<INameSpace> EffectApp::OptimizeThingGeo(const ZString& str, Geo* pgeo, Number* pnumber) { // // Get the time value // TRef<INameSpace> pnsModel = GetModeler()->GetNameSpace("model"); TRef<Number> pnumberTime; CastTo(pnumberTime, pnsModel->FindMember("time")); // // we are going to create a namespace with all the stuff needed by a ThingGeo // TRef<INameSpace> pns = GetModeler()->CreateNameSpace(str, m_pns); if (pnumber != NULL) { pns->AddMember("frame", pnumber); } // // Wrap the Geo up so we don't lose the pointer as we do optimizations // TRef<WrapGeo> pwrap = new WrapGeo(pgeo); pwrap->Update(); // // Add a LightsGeo to the Group // TRef<LightsGeo> plights = new LightsGeo(GetModeler(), pnumberTime); // // Add a list of frames // TRef<FrameDataListValue> pframes = new FrameDataListValue(); // // Extract the lights and frames // ZDebugOutput("Before Callback: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); TRef<GroupGeoCallbackImpl> pcallback = new GroupGeoCallbackImpl(pframes, plights); pwrap->GetGeo()->CallGroupGeoCallback(Matrix::GetIdentity(), pcallback); // // If there are any lights or frames add them to the namespace // if (plights->GetCount() > 0) { pns->AddMember("lights", plights); } if (pframes->GetList().GetCount() > 0) { pns->AddMember("frames", pframes); } // // Optimize the geo // bool bAnyFold; TRef<Geo> pgeoFold; do { bAnyFold = false; ZDebugOutput("Before RemoveMaterial: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); pgeoFold = pwrap->GetGeo()->RemoveMaterial(); if (pgeoFold) { bAnyFold = true; pwrap->SetGeo(pgeoFold); ZDebugOutput("Before Fold: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); pwrap->GetGeo()->DoFold(); } ZDebugOutput("Before FoldTexture: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); pgeoFold = pwrap->GetGeo()->FoldTexture(); if (pgeoFold) { bAnyFold = true; pwrap->SetGeo(pgeoFold); ZDebugOutput("Before Fold: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); pwrap->GetGeo()->DoFold(); } if (!bAnyFold) { ZDebugOutput("Before Fold: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); bAnyFold = pwrap->GetGeo()->DoFold(); } } while (bAnyFold); ZDebugOutput("After Optimization: " + ZString(pwrap->GetGeo()->GetNodeCount()) + "\n"); // // We're done // pns->AddMember("object", pwrap->GetGeo()); return pns; }