QSGNode *DynamicController::updatePaintNode(QSGNode * oldNode, UpdatePaintNodeData *data) { QSGNode * rootNode = Graph::updatePaintNode(oldNode, data); if (m_type == Compressor) { drawCompressor(rootNode); } else if (m_type == Gate) { drawGate(rootNode); } else if (m_type == GateCompressor) { drawGateCompressor(rootNode); } return rootNode; }
void GateDemo::drawScene() { // Clear the backbuffer and depth buffer. HR(gd3dDevice->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffeeeeee, 1.0f, 0)); HR(gd3dDevice->BeginScene()); // Setup the rendering FX HR(mFX->SetTechnique(mhTech)); HR(mFX->SetValue(mhLightVecW, &mLightVecW, sizeof(D3DXVECTOR3))); HR(mFX->SetValue(mhDiffuseLight, &mDiffuseLight, sizeof(D3DXCOLOR))); HR(mFX->SetValue(mhAmbientLight, &mAmbientLight, sizeof(D3DXCOLOR))); HR(mFX->SetValue(mhSpecularLight, &mSpecularLight, sizeof(D3DXCOLOR))); drawGround(); drawGate(); mGfxStats->display(); HR(gd3dDevice->EndScene()); // Present the backbuffer. HR(gd3dDevice->Present(0, 0, 0, 0)); }
void* Run(cv::VideoCapture& capture) { int size = ivWidth*ivHeight; int count = 1; DebugInfo dbgInfo; cv::CascadeClassifier cascade; std::vector<cv::Rect> detectedFaces; std::vector<ObjectBox> trackBoxes; ObjectBox detectBox; // Initialize MultiObjectTLD #if LOADCLASSIFIERATSTART MultiObjectTLD p = MultiObjectTLD::loadClassifier((char*)CLASSIFIERFILENAME); #else MOTLDSettings settings(COLOR_MODE_RGB); settings.useColor = false; MultiObjectTLD p(ivWidth, ivHeight, settings); #endif if(cascadePath != "") cascade.load( cascadePath ); Matrix maRed; Matrix maGreen; Matrix maBlue; unsigned char img[size*3]; while(!ivQuit) { /* if(reset){ p = *(new MultiObjectTLD(ivWidth, ivHeight, COLOR_MODE_RGB)); reset = false; } if(load){ p = MultiObjectTLD::loadClassifier(CLASSIFIERFILENAME); load = false; } */ #if TIMING c_end = std::clock(); std::cout << "Total: " << (c_end-c_start) << std::endl; c_start = std::clock(); #endif // Grab an image if(!capture.grab()){ std::cout << "error grabbing frame" << std::endl; break; } cv::Mat frame; capture.retrieve(frame); frame.copyTo(curImage); //BGR to RGB // for(int j = 0; j<size; j++){ // img[j] = frame.at<cv::Vec3b>(j).val[2]; // img[j+size] = frame.at<cv::Vec3b>(j).val[1]; // img[j+2*size] = frame.at<cv::Vec3b>(j).val[0]; // } #if TIMING c_start1 = std::clock(); #endif for(int i = 0; i < ivHeight; ++i){ for(int j = 0; j < ivWidth; ++j){ img[i*ivWidth+j] = curImage.at<cv::Vec3b>(i,j).val[2]; img[i*ivWidth+j+size] = curImage.at<cv::Vec3b>(i,j).val[1]; img[i*ivWidth+j+2*size] = curImage.at<cv::Vec3b>(i,j).val[0]; } } #if TIMING c_end1 = std::clock(); std::cout << "time1: " << (c_end1-c_start1) << std::endl; #endif // for(int i = 0; i < ivHeight; ++i){ // for(int j = 0; j < ivWidth; ++j){ // curImage.at<cv::Vec3b>(i,j).val[2] = 0; // curImage.at<cv::Vec3b>(i,j).val[1] = 0; // curImage.at<cv::Vec3b>(i,j).val[0] = 0; // } // } // cv::imshow("MOCTLD", curImage); #if TIMING c_start2 = std::clock(); #endif // Process it with motld p.processFrame(img); #if TIMING c_end2 = std::clock(); std::cout << "time2: " << (c_end2-c_start2) << std::endl; #endif // Add new box if(mouseMode == MOUSE_MODE_ADD_BOX){ p.addObject(mouseBox); mouseMode = MOUSE_MODE_IDLE; } if(mouseMode == MOUSE_MODE_ADD_GATE){ p.addGate(gate); mouseMode = MOUSE_MODE_IDLE; } if(((count%20)==0) && cascadeDetect) { cascade.detectMultiScale( frame, detectedFaces, 1.1, 2, 0 //|CASCADE_FIND_BIGGEST_OBJECT //|CASCADE_DO_ROUGH_SEARCH |cv::CASCADE_SCALE_IMAGE, cv::Size(30, 30) ); Ndetections = detectedFaces.size(); for( std::vector<cv::Rect>::const_iterator r = detectedFaces.begin(); r != detectedFaces.end(); r++ ) { detectBox.x = r->x; detectBox.y = r->y; detectBox.width = r->width; detectBox.height = r->height; if(p.isNewObject(detectBox)) p.addObject(detectBox); } //printf("size detectedFaces: %i\n", detectedFaces.size()); } count++; // Display result HandleInput(); p.getDebugImage(img, maRed, maGreen, maBlue, drawMode); #if TIMING c_start3 = std::clock(); #endif BGR2RGB(maRed, maGreen, maBlue); #if TIMING c_end3 = std::clock(); std::cout << "time3: " << (c_end3-c_start3) << std::endl; #endif drawGate(); drawMouseBox(); dbgInfo.NObjects = p.getObjectTotal(); dbgInfo.side0Cnt = p.getSide0Cnt(); dbgInfo.side1Cnt = p.getSide1Cnt(); writeDebug(dbgInfo); cv::imshow("MOCTLD", curImage); p.enableLearning(learningEnabled); if(save){ p.saveClassifier((char*)CLASSIFIERFILENAME); save = false; } } //delete[] img; capture.release(); return 0; }