本文整理汇总了C++中ViewerNodePtr::isDoingPartialUpdates方法的典型用法代码示例。如果您正苦于以下问题:C++ ViewerNodePtr::isDoingPartialUpdates方法的具体用法?C++ ViewerNodePtr::isDoingPartialUpdates怎么用?C++ ViewerNodePtr::isDoingPartialUpdates使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ViewerNodePtr
的用法示例。
在下文中一共展示了ViewerNodePtr::isDoingPartialUpdates方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RenderStats
ActionRetCodeEnum
ViewerDisplayScheduler::createFrameRenderResultsGeneric(const ViewerNodePtr& viewer,
const TreeRenderQueueProviderPtr& provider,
TimeValue time,
bool isPlayback,
const RotoStrokeItemPtr& activeDrawingStroke,
const std::vector<ViewIdx>& viewsToRender,
bool enableRenderStats,
RenderFrameResultsContainerPtr* future)
{
// A global statistics object for this frame render if requested
RenderStatsPtr stats;
if (enableRenderStats) {
stats.reset( new RenderStats(enableRenderStats) );
}
// Get parameters from the viewport
bool fullFrameProcessing = viewer->isFullFrameProcessingEnabled();
bool draftModeEnabled = viewer->getApp()->isDraftRenderEnabled();
unsigned int mipMapLevel = getViewerMipMapLevel(viewer, draftModeEnabled, fullFrameProcessing);
bool byPassCache = viewer->isRenderWithoutCacheEnabledAndTurnOff();
ViewerCompositingOperatorEnum viewerBlend = viewer->getCurrentOperator();
bool viewerBEqualsViewerA = viewer->getCurrentAInput() == viewer->getCurrentBInput();
// Create the global results object
ViewerRenderFrameResultsContainerPtr results(new ViewerRenderFrameResultsContainer(provider));
*future = results;
results->time = time;
results->recenterViewer = viewer->getViewerCenterPoint(&results->viewerCenter);
std::list<RectD> rois;
if (!viewer->isDoingPartialUpdates()) {
rois.push_back(RectD());
} else {
// If the viewer is doing partial updates (i.e: during tracking we only update the markers areas)
// Then we launch multiple renders over the partial areas
std::list<RectD> partialUpdates = viewer->getPartialUpdateRects();
for (std::list<RectD>::const_iterator it = partialUpdates.begin(); it != partialUpdates.end(); ++it) {
if (!it->isNull()) {
rois.push_back(*it);
}
}
}
for (std::list<RectD>::const_iterator it = rois.begin(); it != rois.end(); ++it) {
// Render all requested views
for (std::size_t view_i = 0; view_i < viewsToRender.size(); ++view_i) {
ActionRetCodeEnum stat = createFrameRenderResultsForView(viewer, provider, results, viewsToRender[view_i], stats, isPlayback, it->isNull() ? 0 : &(*it), mipMapLevel, viewerBlend, byPassCache, draftModeEnabled, fullFrameProcessing, viewerBEqualsViewerA, activeDrawingStroke);
if (isFailureRetCode(stat)) {
return stat;
}
} // for each view
}
return eActionStatusOK;
} // createFrameRenderResultsGeneric