18 #ifndef __HUSD_Imaging_h__
19 #define __HUSD_Imaging_h__
56 class husd_DefaultRenderSettingContext;
71 void setScene(HUSD_Scene *scene_ref);
83 DRAW_WIRE_SHADED_SMOOTH
86 void showPurposeRender(
bool enable);
87 void showPurposeProxy(
bool enable);
88 void showPurposeGuide(
bool enable);
90 void setDrawMode(DrawMode
mode);
91 void setDrawComplexity(
float complexity);
92 void setBackfaceCull(
bool cull);
96 bool setFrame(
fpreal frame);
98 void setHeadlightIntensity(
fpreal intensity);
99 void setThreePointLights(
const UT_Vector3F &key_color,
108 void setPhysicalSky(
const fpreal32 &sun_int,
112 void setLighting(
bool enable);
113 void setMaterials(
bool enable);
119 void setAllowStormRenderer(
bool allow_storm);
127 BufferSet hasAOVBuffers()
const;
133 void setPostRenderCallback(ImagingCallback cb);
134 bool getUsingCoreProfile();
140 bool launchBackgroundRender(
const UT_Matrix4D &view_matrix,
147 void waitForUpdateToComplete();
149 bool checkRender(
bool do_render);
151 void updateComposite(
152 bool free_buffers_if_missing,
164 const PXL_Raster *background_raster =
nullptr,
165 int bleft = -1,
int bbottom = -1,
166 int bright = -1,
int btop = -1,
189 bool camera_synced =
true)
191 if(path != myCameraPath)
194 mySettingsChanged =
true;
197 if(camera_synced != myCameraSynced)
199 myCameraSynced = camera_synced;
200 mySettingsChanged =
true;
207 {
return myRenderPassPath; }
209 { myRenderPassPath =
path; }
212 { myShowHdGpProcedurals = show; }
215 { myCompositor = comp; }
220 {
return !isUpdateRunning() && myConverged; }
221 void terminateRender(
bool hard_halt =
true);
227 {
return myRendererName; }
228 void getRendererCommands(
231 void invokeRendererCommand(
235 RUNNING_UPDATE_NOT_STARTED = 0,
240 bool isUpdateRunning()
const;
241 bool isUpdateComplete()
const;
248 bool canPause()
const;
249 bool isPausedByUser()
const;
250 bool isStoppedByUser()
const;
251 bool rendererCreated()
const;
257 {
return myAllowUpdates; }
259 { myAllowUpdates = allow_updates; }
261 static void initializeAvailableRenderers();
264 void setRenderSettings(
const UT_StringRef &settings_path,
267 const UT_Vector4F &render_region={ 0.0, 0.0, 0.0, 0.0 });
283 static bool embedRenderStatsMetadata(
const UT_Options &stats,
286 void setRenderFocus(
int x,
int y)
const;
287 void clearRenderFocus()
const;
292 void setRenderSettingsDataWindowActive(
bool active);
298 void getPrimPathsFromRenderKeys(
302 void updateDeferredPrims();
306 { mySlapCompProgramManager = manager; }
313 return mySlapCompProgramManager &&
314 mySlapCompProgramManager->hasStateChanged();
319 void updatePlanes(
bool ignore_slapcomp);
324 void handleCopTextureChange(
bool time_changed);
326 void setCopTextureChangeCallback(ImagingCallback cb);
327 void updateApexAnimateSceneIndex(
332 class husd_ImagingPrivate;
333 class husd_IMXRenderBuffer;
335 bool isSlapCompEnabled()
const;
336 bool isViewportSlapCompEnabled()
const;
337 void deactivateSlapComp();
344 void registerSlapCompAOVs(
349 void runSlapCompIfNeeded(
355 husd_IMXRenderBuffer*
b)
358 void resetImagingEngine();
360 bool updateRestartCameraSettings(
bool cam_effects)
const;
361 bool anyRestartRenderSettingsChanged()
const;
366 const PXR_NS::VtValue &
value,
367 bool from_usd_prim =
false);
369 RunningStatus updateRenderData(
const UT_Matrix4D &view_matrix,
373 void gatherCopResolverDependencies();
374 void finishRender(
bool do_render);
382 unsigned myWantsHeadlight : 1,
384 myWantsDomelight : 1,
386 myWantsThreePointlight : 1,
387 myHasThreePointlight : 1,
388 myWantsPhysicalSky : 1,
389 myHasPhysicalSky : 1,
393 mySettingsChanged : 1,
395 myWorkLightsChanged : 1,
396 myValidRenderSettingsPrim : 1,
400 bool myAllowStormRenderer;
404 ImagingCallback myPostRenderCallback;
405 ImagingCallback myCopTextureChangeCallback;
414 bool myShowHdGpProcedurals;
416 BufferSet myLastCompositedBufferSet;
419 fpreal myHeadlightIntensity;
437 bool myHandlingCopTextureChange;
const HUSD_Path & renderPassPrimPath() const
const UT_StringHolder & currentAov() const
UT_Map< HUSD_Path, UT_Array< UT_Vector3 > > HUSD_PointMap
void setAOVCompositor(HUSD_Compositor *comp)
XUSD_RenderSettings contains the HdRenderSettings for the render.
#define PXR_NAMESPACE_OPEN_SCOPE
GLsizei const GLfloat * value
GLsizei const GLchar *const * path
GA_API const UT_StringHolder rot
IFDmantra you can see code vm_image_mplay_direction endcode When SOHO starts a render
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
const UT_StringHolder & rendererName() const
void showHdGpProcedurals(bool show)
const UT_StringHolder & outputPlane() const
Simple interface around HdRenderBuffer.
bool slapcompStateChanged() const
HUSD_API const char * resolution()
GLuint const GLchar * name
std::function< T > UT_Function
GLboolean GLboolean GLboolean b
ImageBuf OIIO_API rotate(const ImageBuf &src, float angle, string_view filtername=string_view(), float filterwidth=0.0f, bool recompute_roi=false, ROI roi={}, int nthreads=0)
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate active
void setCameraPath(const UT_StringRef &path, bool camera_synced=true)
void setRenderPassPrimPath(const HUSD_Path &path)
GLfloat GLfloat GLfloat GLfloat h
A map of string to various well defined value types.
const UT_StringArray & rendererPlanes() const
void setAllowUpdates(bool allow_updates)
#define PXR_NAMESPACE_CLOSE_SCOPE
void setSlapCompProgramManager(COP_SlapCompDispatcher *manager)
GLubyte GLubyte GLubyte GLubyte w
UT_Function< void(HUSD_Imaging *imaging)> ImagingCallback
bool allowUpdates() const