void newVideoRenderTarget::openRenderTarget() throw(Error_sV) { writer = CreateVideoWriter(m_filename.toStdString().c_str(), renderTask()->resolution().width(), renderTask()->resolution().height(), renderTask()->fps().fps(),1, m_vcodec.toStdString().c_str()); if (writer == 0) { throw Error_sV(QObject::tr("Video could not be prepared .\n")); } }
void RenderTaskList::NotifyFinished() { DALI_LOG_TRACE_METHOD(gLogRenderList); std::vector< Dali::RenderTask > finishedRenderTasks; // Since render tasks can be unreferenced during the signal emissions, iterators into render tasks pointers may be invalidated. // First copy the finished render tasks, then emit signals for ( std::vector<Dali::RenderTask>::iterator it = mTasks.begin(), endIt = mTasks.end(); it != endIt; ++it ) { Dali::RenderTask& renderTask( *it ); if( GetImplementation( renderTask ).HasFinished() ) { finishedRenderTasks.push_back( Dali::RenderTask( renderTask ) ); } } // Now it's safe to emit the signals for ( std::vector<Dali::RenderTask>::iterator it = finishedRenderTasks.begin(), endIt = finishedRenderTasks.end(); it != endIt; ++it ) { Dali::RenderTask& handle( *it ); GetImplementation(handle).EmitSignalFinish(); } }
void My_TestGLDrawing::InitTest() { _renderIndex = HdRenderIndex::New(&_renderDelegate); TF_VERIFY(_renderIndex != nullptr); _delegate.reset(new Hdx_UnitTestDelegate(_renderIndex)); // prepare render task SdfPath renderSetupTask("/renderSetupTask"); SdfPath renderTask("/renderTask"); SdfPath selectionTask("/selectionTask"); _delegate->AddRenderSetupTask(renderSetupTask); _delegate->AddRenderTask(renderTask); _delegate->AddSelectionTask(selectionTask); // render task parameters. VtValue vParam = _delegate->GetTaskParam(renderSetupTask, HdTokens->params); HdxRenderTaskParams param = vParam.Get<HdxRenderTaskParams>(); param.enableLighting = true; // use default lighting _delegate->SetTaskParam(renderSetupTask, HdTokens->params, VtValue(param)); _delegate->SetTaskParam(renderTask, HdTokens->collection, VtValue(HdRprimCollection(HdTokens->geometry, HdReprSelector(HdReprTokens->hull)))); HdxSelectionTaskParams selParam; selParam.enableSelection = true; selParam.selectionColor = GfVec4f(1, 1, 0, 1); selParam.locateColor = GfVec4f(1, 0, 1, 1); _delegate->SetTaskParam(selectionTask, HdTokens->params, VtValue(selParam)); // prepare scene _InitScene(); SetCameraTranslate(GfVec3f(0, 0, -20)); // picking related init _pickablesCol = HdRprimCollection(_tokens->pickables, HdReprSelector(HdReprTokens->hull)); _marquee.InitGLResources(); _picker.InitIntersector(_renderIndex); _SetPickParams(); // We have to unfortunately explictly add collections besides 'geometry' // See HdRenderIndex constructor. _delegate->GetRenderIndex().GetChangeTracker().AddCollection(_tokens->pickables); // XXX: Setup a VAO, the current drawing engine will not yet do this. glGenVertexArrays(1, &vao); glBindVertexArray(vao); glBindVertexArray(0); }
void My_TestGLDrawing:: DrawScene(PickParam const * pickParam) { int width = GetWidth(), height = GetHeight(); GfMatrix4d viewMatrix = GetViewMatrix(); GfFrustum frustum = GetFrustum(); GfVec4d viewport(0, 0, width, height); if (pickParam) { frustum = frustum.ComputeNarrowedFrustum( GfVec2d((2.0 * pickParam->location[0]) / width - 1.0, (2.0 * (height-pickParam->location[1])) / height - 1.0), GfVec2d(1.0 / width, 1.0 / height)); viewport = pickParam->viewport; } GfMatrix4d projMatrix = frustum.ComputeProjectionMatrix(); _delegate->SetCamera(viewMatrix, projMatrix); glViewport(viewport[0], viewport[1], viewport[2], viewport[3]); HdTaskSharedPtrVector tasks; SdfPath renderSetupTask("/renderSetupTask"); SdfPath renderTask("/renderTask"); tasks.push_back(_delegate->GetRenderIndex().GetTask(renderSetupTask)); tasks.push_back(_delegate->GetRenderIndex().GetTask(renderTask)); HdxRenderTaskParams param = _delegate->GetTaskParam( renderSetupTask, HdTokens->params).Get<HdxRenderTaskParams>(); param.enableIdRender = (pickParam != NULL); param.viewport = viewport; _delegate->SetTaskParam(renderSetupTask, HdTokens->params, VtValue(param)); glEnable(GL_DEPTH_TEST); glBindVertexArray(vao); _engine.Execute(_delegate->GetRenderIndex(), tasks); glBindVertexArray(0); }
void VideoRenderTarget_sV::openRenderTarget() throw(Error_sV) { char *vcodec = NULL; if (m_vcodec.length() > 0) { vcodec = (char*)malloc(m_vcodec.length()+1); strcpy(vcodec, m_vcodec.toStdString().c_str()); } int worked = prepare(m_videoOut, m_filename.toStdString().c_str(), vcodec, renderTask()->resolution().width(), renderTask()->resolution().height(), renderTask()->fps().fps() * renderTask()->resolution().width() * renderTask()->resolution().height(), renderTask()->fps().den, renderTask()->fps().num); if (worked != 0) { throw Error_sV(QObject::tr("Video could not be prepared (error code %1).\n%2").arg(worked).arg(m_videoOut->errorMessage)); } }
void My_TestGLDrawing::DrawScene() { _Clear(); int width = GetWidth(), height = GetHeight(); GfMatrix4d viewMatrix = GetViewMatrix(); GfFrustum frustum = GetFrustum(); GfVec4d viewport(0, 0, width, height); GfMatrix4d projMatrix = frustum.ComputeProjectionMatrix(); _delegate->SetCamera(viewMatrix, projMatrix); glViewport(viewport[0], viewport[1], viewport[2], viewport[3]); SdfPath renderSetupTask("/renderSetupTask"); SdfPath renderTask("/renderTask"); SdfPath selectionTask("/selectionTask"); // viewport HdxRenderTaskParams param = _delegate->GetTaskParam( renderSetupTask, HdTokens->params).Get<HdxRenderTaskParams>(); param.viewport = viewport; _delegate->SetTaskParam(renderSetupTask, HdTokens->params, VtValue(param)); HdTaskSharedPtrVector tasks; tasks.push_back(_delegate->GetRenderIndex().GetTask(renderSetupTask)); tasks.push_back(_delegate->GetRenderIndex().GetTask(renderTask)); tasks.push_back(_delegate->GetRenderIndex().GetTask(selectionTask)); glEnable(GL_DEPTH_TEST); glBindVertexArray(vao); VtValue v(_picker.GetSelectionTracker()); _engine.SetTaskContextData(HdxTokens->selectionState, v); _engine.Execute(_delegate->GetRenderIndex(), tasks); glBindVertexArray(0); }
void exportVideoRenderTarget::closeRenderTarget() throw(Error_sV) { VideoWriter* writer;; qDebug() << "exporting temporary frame to Video" << m_filename << " using codec " << m_vcodec << "starting at " << first; if (m_vcodec.isEmpty()) writer = CreateVideoWriter(m_filename.toStdString().c_str(), renderTask()->resolution().width(), renderTask()->resolution().height(), renderTask()->fps().fps(),use_qt,0); else writer = CreateVideoWriter(m_filename.toStdString().c_str(), renderTask()->resolution().width(), renderTask()->resolution().height(), renderTask()->fps().fps(),use_qt,m_vcodec.toStdString().c_str()); if (writer == 0) { throw Error_sV(QObject::tr("Video could not be prepared .\n")); } exportFrames(writer, m_targetDir.absoluteFilePath(m_filenamePattern.arg("%05d")).toStdString().c_str(),first,renderTask()); ReleaseVideoWriter( &writer ); }
/*----------------------------------------------------------------------------------------------*/ void GUI_Toplevel::render(wxDC& dc) { int page, this_tic, update; wxString str; wxString str2; if(pSerial->TryLock() == 0) { if(pSerial->messages.sps.tic != last_tic) { memcpy(&messages,pSerial->GetMessages(),sizeof(Message_Struct)); last_tic = pSerial->messages.sps.tic; update = true; } else { update = false; } pSerial->Unlock(); } /* Render RS422 Panel */ renderRS422(); // if(update) { /* Render Task Panel */ renderTask(); str.Printf(wxT("Count: %d"),count++); str += status_str; SetStatusText(str); /* Render main window */ if(wPVT != NULL) wPVT->paintNow(); /* Render main window */ if(wEKF != NULL) wEKF->paintNow(); /* Render channel window */ if(wChannel != NULL) wChannel->paintNow(); /* Render channel window */ if(wPseudo != NULL) wPseudo->paintNow(); /* Render channel window */ if(wAlmanac != NULL) wAlmanac->paintNow(); /* Render channel window */ if(wSelect != NULL) wSelect->paintNow(); /* Render channel window */ if(wEphemeris != NULL) wEphemeris->paintNow(); /* Render SV Select window */ if(wHealth != NULL) wHealth->paintNow(); /* Display EEPROM */ // if(wEEPROM != NULL) // wEEPROM->paintNow(); /* Display Messages */ if(wMessages != NULL) wMessages->paintNow(); /* Display Speedo */ if(wSpeedo != NULL) wSpeedo->paintNow(); } }
void My_TestGLDrawing::InitTest() { _renderIndex = HdRenderIndex::New(&_renderDelegate); TF_VERIFY(_renderIndex != nullptr); _delegate = new Hdx_UnitTestDelegate(_renderIndex); _delegate->SetRefineLevel(_refineLevel); // prepare render task SdfPath renderSetupTask("/renderSetupTask"); SdfPath renderTask("/renderTask"); _delegate->AddRenderSetupTask(renderSetupTask); _delegate->AddRenderTask(renderTask); // render task parameters. HdxRenderTaskParams param = _delegate->GetTaskParam( renderSetupTask, HdTokens->params).Get<HdxRenderTaskParams>(); param.enableLighting = true; // use default lighting _delegate->SetTaskParam(renderSetupTask, HdTokens->params, VtValue(param)); _delegate->SetTaskParam(renderTask, HdTokens->collection, VtValue(HdRprimCollection(HdTokens->geometry, _reprName))); // prepare scene // To ensure that the non-aggregated element index returned via picking, // we need to have at least two cubes with uniform colors. GfVec4f red(1,0,0,1), green(0,1,0,1), blue(0,0,1,1), yellow(1,1,0,1), magenta(1,0,1,1), cyan(0,1,1,1), white(1,1,1,1), black(0,0,0,1); GfVec4f faceColors[] = { red, green, blue, yellow, magenta, cyan}; VtValue faceColor = VtValue(_BuildArray(&faceColors[0], sizeof(faceColors)/sizeof(faceColors[0]))); GfVec4f vertColors[] = { white, blue, green, yellow, black, blue, magenta, red}; VtValue vertColor = VtValue(_BuildArray(&vertColors[0], sizeof(vertColors)/sizeof(vertColors[0]))); _delegate->AddCube(SdfPath("/cube0"), _GetTranslate( 5, 0, 5), /*guide=*/false, /*instancerId=*/SdfPath(), /*scheme=*/PxOsdOpenSubdivTokens->catmark, /*color=*/faceColor, /*colorInterpolation=*/Hdx_UnitTestDelegate::UNIFORM); _delegate->AddCube(SdfPath("/cube1"), _GetTranslate(-5, 0, 5), /*guide=*/false, /*instancerId=*/SdfPath(), /*scheme=*/PxOsdOpenSubdivTokens->catmark, /*color=*/faceColor, /*colorInterpolation=*/Hdx_UnitTestDelegate::UNIFORM); _delegate->AddCube(SdfPath("/cube2"), _GetTranslate(-5, 0,-5)); _delegate->AddCube(SdfPath("/cube3"), _GetTranslate( 5, 0,-5), /*guide=*/false, /*instancerId=*/SdfPath(), /*scheme=*/PxOsdOpenSubdivTokens->catmark, /*color=*/vertColor, /*colorInterpolation=*/Hdx_UnitTestDelegate::VERTEX); { _delegate->AddInstancer(SdfPath("/instancerTop")); _delegate->AddCube(SdfPath("/protoTop"), GfMatrix4d(1), false, SdfPath("/instancerTop")); std::vector<SdfPath> prototypes; prototypes.push_back(SdfPath("/protoTop")); VtVec3fArray scale(3); VtVec4fArray rotate(3); VtVec3fArray translate(3); VtIntArray prototypeIndex(3); scale[0] = GfVec3f(1); rotate[0] = GfVec4f(0); translate[0] = GfVec3f(3, 0, 2); prototypeIndex[0] = 0; scale[1] = GfVec3f(1); rotate[1] = GfVec4f(0); translate[1] = GfVec3f(0, 0, 2); prototypeIndex[1] = 0; scale[2] = GfVec3f(1); rotate[2] = GfVec4f(0); translate[2] = GfVec3f(-3, 0, 2); prototypeIndex[2] = 0; _delegate->SetInstancerProperties(SdfPath("/instancerTop"), prototypeIndex, scale, rotate, translate); } { _delegate->AddInstancer(SdfPath("/instancerBottom")); _delegate->AddCube(SdfPath("/protoBottom"), GfMatrix4d(1), false, SdfPath("/instancerBottom")); std::vector<SdfPath> prototypes; prototypes.push_back(SdfPath("/protoBottom")); VtVec3fArray scale(3); VtVec4fArray rotate(3); VtVec3fArray translate(3); VtIntArray prototypeIndex(3); scale[0] = GfVec3f(1); rotate[0] = GfVec4f(0); translate[0] = GfVec3f(3, 0, -2); prototypeIndex[0] = 0; scale[1] = GfVec3f(1); rotate[1] = GfVec4f(0); translate[1] = GfVec3f(0, 0, -2); prototypeIndex[1] = 0; scale[2] = GfVec3f(1); rotate[2] = GfVec4f(0); translate[2] = GfVec3f(-3, 0, -2); prototypeIndex[2] = 0; _delegate->SetInstancerProperties(SdfPath("/instancerBottom"), prototypeIndex, scale, rotate, translate); } SetCameraTranslate(GfVec3f(0, 0, -20)); // XXX: Setup a VAO, the current drawing engine will not yet do this. glGenVertexArrays(1, &vao); glBindVertexArray(vao); glBindVertexArray(0); }
void My_TestGLDrawing::InitTest() { _renderIndex = HdRenderIndex::New(&_renderDelegate); TF_VERIFY(_renderIndex != nullptr); _delegate = new Hdx_UnitTestDelegate(_renderIndex); _delegate->SetRefineLevel(_refineLevel); // prepare render task SdfPath renderSetupTask("/renderSetupTask"); SdfPath renderTask("/renderTask"); _delegate->AddRenderSetupTask(renderSetupTask); _delegate->AddRenderTask(renderTask); // render task parameters. HdxRenderTaskParams param = _delegate->GetTaskParam( renderSetupTask, HdTokens->params).Get<HdxRenderTaskParams>(); param.enableLighting = true; // use default lighting _delegate->SetTaskParam(renderSetupTask, HdTokens->params, VtValue(param)); _delegate->SetTaskParam(renderTask, HdTokens->collection, VtValue(HdRprimCollection(HdTokens->geometry, _reprName))); // prepare scene _delegate->AddCube(SdfPath("/cube0"), _GetTranslate( 5, 0, 5)); _delegate->AddCube(SdfPath("/cube1"), _GetTranslate(-5, 0, 5)); _delegate->AddCube(SdfPath("/cube2"), _GetTranslate(-5, 0,-5)); _delegate->AddCube(SdfPath("/cube3"), _GetTranslate( 5, 0,-5)); { _delegate->AddInstancer(SdfPath("/instancerTop")); _delegate->AddCube(SdfPath("/protoTop"), GfMatrix4d(1), false, SdfPath("/instancerTop")); std::vector<SdfPath> prototypes; prototypes.push_back(SdfPath("/protoTop")); VtVec3fArray scale(3); VtVec4fArray rotate(3); VtVec3fArray translate(3); VtIntArray prototypeIndex(3); scale[0] = GfVec3f(1); rotate[0] = GfVec4f(0); translate[0] = GfVec3f(3, 0, 2); prototypeIndex[0] = 0; scale[1] = GfVec3f(1); rotate[1] = GfVec4f(0); translate[1] = GfVec3f(0, 0, 2); prototypeIndex[1] = 0; scale[2] = GfVec3f(1); rotate[2] = GfVec4f(0); translate[2] = GfVec3f(-3, 0, 2); prototypeIndex[2] = 0; _delegate->SetInstancerProperties(SdfPath("/instancerTop"), prototypeIndex, scale, rotate, translate); } { _delegate->AddInstancer(SdfPath("/instancerBottom")); _delegate->AddCube(SdfPath("/protoBottom"), GfMatrix4d(1), false, SdfPath("/instancerBottom")); std::vector<SdfPath> prototypes; prototypes.push_back(SdfPath("/protoBottom")); VtVec3fArray scale(3); VtVec4fArray rotate(3); VtVec3fArray translate(3); VtIntArray prototypeIndex(3); scale[0] = GfVec3f(1); rotate[0] = GfVec4f(0); translate[0] = GfVec3f(3, 0, -2); prototypeIndex[0] = 0; scale[1] = GfVec3f(1); rotate[1] = GfVec4f(0); translate[1] = GfVec3f(0, 0, -2); prototypeIndex[1] = 0; scale[2] = GfVec3f(1); rotate[2] = GfVec4f(0); translate[2] = GfVec3f(-3, 0, -2); prototypeIndex[2] = 0; _delegate->SetInstancerProperties(SdfPath("/instancerBottom"), prototypeIndex, scale, rotate, translate); } SetCameraTranslate(GfVec3f(0, 0, -20)); // XXX: Setup a VAO, the current drawing engine will not yet do this. glGenVertexArrays(1, &vao); glBindVertexArray(vao); glBindVertexArray(0); }