Open CASCADE Technology  7.0.0
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
D3DHost_View Class Reference

The D3D host view implementation that overrides rendering methods. More...

#include <D3DHost_View.hxx>

Inheritance diagram for D3DHost_View:
Inheritance graph
[legend]

Public Member Functions

 D3DHost_View (const Handle< Graphic3d_StructureManager > &theMgr, const Handle< D3DHost_GraphicDriver > &theDriver, const Handle< OpenGl_Caps > &theCaps, Standard_Boolean &theDeviceLostFlag, OpenGl_StateCounter *theCounter)
 Constructor. More...
 
virtual ~D3DHost_View ()
 Default destructor. More...
 
virtual void SetWindow (const Handle< Aspect_Window > &theWindow, const Aspect_RenderingContext theContext) override
 Creates and maps rendering window to the view. More...
 
virtual void Resized () override
 Resizes the window. More...
 
virtual void Redraw () override
 Redraw the all content. More...
 
virtual void RedrawImmediate () override
 Redraw only immediate layer. More...
 
bool isD3dEx () const
 
IDirect3DDevice9 * D3dDevice () const
 Access Direct3D device instance. More...
 
const Handle< D3DHost_FrameBuffer > & D3dWglBuffer () const
 Return D3D/WGL FBO. More...
 
IDirect3DSurface9 * D3dColorSurface () const
 Return D3D surface. More...
 
- Public Member Functions inherited from OpenGl_View
 OpenGl_View (const Handle< Graphic3d_StructureManager > &theMgr, const Handle< OpenGl_GraphicDriver > &theDriver, const Handle< OpenGl_Caps > &theCaps, Standard_Boolean &theDeviceLostFlag, OpenGl_StateCounter *theCounter)
 Constructor. More...
 
virtual ~OpenGl_View ()
 Default destructor. More...
 
void ReleaseGlResources (const Handle< OpenGl_Context > &theCtx)
 
virtual void Remove () override
 Deletes and erases the view. More...
 
Standard_Boolean SetImmediateModeDrawToFront (const Standard_Boolean theDrawToFrontBuffer) override
 
virtual Handle< Aspect_WindowWindow () const override
 Returns window associated with the view. More...
 
virtual Standard_Boolean IsDefined () const override
 Returns True if the window associated to the view is defined. More...
 
virtual void Invalidate () override
 Marks BVH tree for given priority list as dirty and marks primitive set for rebuild. More...
 
virtual Standard_Boolean IsInvalidated () override
 Return true if view content cache has been invalidated. More...
 
virtual void TriedronDisplay (const Aspect_TypeOfTriedronPosition thePosition=Aspect_TOTP_CENTER, const Quantity_NameOfColor theColor=Quantity_NOC_WHITE, const Standard_Real theScale=0.02, const Standard_Boolean theAsWireframe=Standard_True) override
 Displays z-buffer trihedron. More...
 
virtual void TriedronErase () override
 Erases z-buffer trihedron. More...
 
virtual void ZBufferTriedronSetup (const Quantity_NameOfColor theXColor=Quantity_NOC_RED, const Quantity_NameOfColor theYColor=Quantity_NOC_GREEN, const Quantity_NameOfColor theZColor=Quantity_NOC_BLUE1, const Standard_Real theSizeRatio=0.8, const Standard_Real theAxisDiametr=0.05, const Standard_Integer theNbFacettes=12) override
 Setup parameters of z-buffer trihedron. More...
 
virtual void TriedronEcho (const Aspect_TypeOfTriedronEcho theType=Aspect_TOTE_NONE) override
 Displays trihedron echo. More...
 
const Graphic3d_GraduatedTrihedronGetGraduatedTrihedron () override
 Returns data of a graduated trihedron. More...
 
virtual void GraduatedTrihedronDisplay (const Graphic3d_GraduatedTrihedron &theTrihedronData) override
 Displays Graduated Trihedron. More...
 
virtual void GraduatedTrihedronErase () override
 Erases Graduated Trihedron. More...
 
virtual void GraduatedTrihedronMinMaxValues (const Graphic3d_Vec3 theMin, const Graphic3d_Vec3 theMax) override
 Sets minimum and maximum points of scene bounding box for Graduated Trihedron stored in graphic view object. More...
 
virtual Standard_Boolean BufferDump (Image_PixMap &theImage, const Graphic3d_BufferType &theBufferType) override
 Dump active rendering buffer into specified memory buffer. More...
 
virtual Standard_Boolean Print (const Aspect_Handle thePrinterDC, const Standard_Boolean theToShowBackground, const Standard_CString theFileName, const Aspect_PrintAlgo thePrintAlgorithm=Aspect_PA_STRETCH, const Standard_Real theScaleFactor=1.0) override
 Print the contents of the view to the printer. More...
 
virtual Standard_Boolean Export (const Standard_CString theFileName, const Graphic3d_ExportFormat theFormat, const Graphic3d_SortType theSortType=Graphic3d_ST_BSP_Tree) override
 Export scene into the one of the Vector graphics formats (SVG, PS, PDF...). In contrast to Bitmaps, Vector graphics is scalable (so you may got quality benefits on printing to laser printer). Notice however that results may differ a lot and do not contain some elements. More...
 
virtual void InvalidateBVHData (const Standard_Integer theLayerId) override
 Marks BVH tree and the set of BVH primitives of correspondent priority list with id theLayerId as outdated. More...
 
virtual void AddZLayer (const Graphic3d_ZLayerId theLayerId) override
 Insert a new top-level z layer with the given ID. More...
 
virtual void RemoveZLayer (const Graphic3d_ZLayerId theLayerId) override
 Remove a z layer with the given ID. More...
 
virtual void SetZLayerSettings (const Graphic3d_ZLayerId theLayerId, const Graphic3d_ZLayerSettings &theSettings) override
 Sets the settings for a single Z layer of specified view. More...
 
virtual Handle< Standard_TransientFBO () const override
 Returns pointer to an assigned framebuffer object. More...
 
virtual void SetFBO (const Handle< Standard_Transient > &theFbo) override
 Sets framebuffer object for offscreen rendering. More...
 
virtual Handle< Standard_TransientFBOCreate (const Standard_Integer theWidth, const Standard_Integer theHeight) override
 Generate offscreen FBO in the graphic library. If not supported on hardware returns NULL. More...
 
virtual void FBORelease (Handle< Standard_Transient > &theFbo) override
 Remove offscreen FBO from the graphic library. More...
 
virtual void FBOGetDimensions (const Handle< Standard_Transient > &theFbo, Standard_Integer &theWidth, Standard_Integer &theHeight, Standard_Integer &theWidthMax, Standard_Integer &theHeightMax) override
 Read offscreen FBO configuration. More...
 
virtual void FBOChangeViewport (const Handle< Standard_Transient > &theFbo, const Standard_Integer theWidth, const Standard_Integer theHeight) override
 Change offscreen FBO viewport. More...
 
virtual Standard_Boolean IsAntialiasingEnabled () const override
 Returns true if anti-aliasing is enabled for the view. More...
 
virtual void SetAntialiasingEnabled (const Standard_Boolean theIsEnabled) override
 Enable or disable anti-aliasing in the view. More...
 
virtual Aspect_Background Background () const override
 Returns background fill color. More...
 
virtual void SetBackground (const Aspect_Background &theBackground) override
 Sets background fill color. More...
 
virtual Aspect_GradientBackground GradientBackground () const override
 Returns gradient background fill colors. More...
 
virtual void SetGradientBackground (const Aspect_GradientBackground &theBackground) override
 Sets gradient background fill colors. More...
 
virtual TCollection_AsciiString BackgroundImage () override
 Returns background image texture file path. More...
 
virtual void SetBackgroundImage (const TCollection_AsciiString &theFilePath) override
 Sets background image texture file path. More...
 
virtual Aspect_FillMethod BackgroundImageStyle () const override
 Returns background image fill style. More...
 
virtual void SetBackgroundImageStyle (const Aspect_FillMethod theFillStyle) override
 Sets background image fill style. More...
 
virtual Handle< Graphic3d_TextureEnvTextureEnv () const override
 Returns environment texture set for the view. More...
 
virtual void SetTextureEnv (const Handle< Graphic3d_TextureEnv > &theTextureEnv) override
 Sets environment texture for the view. More...
 
virtual Standard_Boolean IsCullingEnabled () const override
 Returns the state of frustum culling optimization. More...
 
virtual void SetCullingEnabled (const Standard_Boolean theIsEnabled) override
 Enables or disables frustum culling optimization. More...
 
virtual Graphic3d_TypeOfShadingModel ShadingModel () const override
 Returns shading model of the view. More...
 
virtual void SetShadingModel (const Graphic3d_TypeOfShadingModel theModel) override
 Sets shading model of the view. More...
 
virtual Graphic3d_TypeOfSurfaceDetail SurfaceDetailType () const override
 Returns surface detail type of the view. More...
 
virtual void SetSurfaceDetailType (const Graphic3d_TypeOfSurfaceDetail theType) override
 Sets surface detail type of the view. More...
 
virtual Graphic3d_TypeOfBackfacingModel BackfacingModel () const override
 Return backfacing model used for the view. More...
 
virtual void SetBackfacingModel (const Graphic3d_TypeOfBackfacingModel theModel) override
 Sets backfacing model for the view. More...
 
virtual const Handle< Graphic3d_Camera > & Camera () const override
 Returns camera object of the view. More...
 
virtual void SetCamera (const Handle< Graphic3d_Camera > &theCamera) override
 Sets camera used by the view. More...
 
virtual Standard_Boolean BackZClippingIsOn () const override
 Returns the activity of back z-clipping plane. More...
 
virtual void SetBackZClippingOn (const Standard_Boolean theIsOn) override
 Activates the back Z-clipping plane. More...
 
virtual Standard_Real ZClippingBackPlane () const override
 Returns the definition of the back Z-clipping plane. More...
 
virtual void SetZClippingBackPlane (const Standard_Real theValue) override
 Sets the definition of the back Z-clipping plane. More...
 
virtual Standard_Boolean FrontZClippingIsOn () const override
 Returns the activity of front z-clipping plane. More...
 
virtual void SetFrontZClippingOn (const Standard_Boolean theIsOn) override
 Activates the front Z-clipping plane. More...
 
virtual Standard_Real ZClippingFrontPlane () const override
 Returns the definition of the front Z-clipping plane. More...
 
virtual void SetZClippingFrontPlane (const Standard_Real theValue) override
 Sets the definition of the front Z-clipping plane. More...
 
virtual Standard_Boolean DepthCueingIsOn () const override
 Returns the activity of depth cueing. More...
 
virtual void SetDepthCueingOn (const Standard_Boolean theIsOn) override
 Sets the activity of depth cueing. More...
 
virtual Standard_Real DepthCueingBackPlane () const override
 Returns the back depth cueing plane. More...
 
virtual void SetDepthCueingBackPlane (const Standard_Real theValue) override
 Set the back depth cueing plane. More...
 
virtual Standard_Real DepthCueingFrontPlane () const override
 Returns the front depth cueing plane. More...
 
virtual void SetDepthCueingFrontPlane (const Standard_Real theValue) override
 Set the front depth cueing plane. More...
 
virtual Standard_Boolean IsGLLightEnabled () const override
 Returns true if GL lighting is enabled. More...
 
virtual void SetGLLightEnabled (const Standard_Boolean theIsEnabled) override
 Sets GL lighting enabled or disable state. More...
 
virtual const Graphic3d_ListOfCLightLights () const override
 Returns list of lights of the view. More...
 
virtual void SetLights (const Graphic3d_ListOfCLight &theLights) override
 Sets list of lights for the view. More...
 
virtual const Graphic3d_SequenceOfHClipPlaneClipPlanes () const override
 Returns list of clip planes set for the view. More...
 
virtual void SetClipPlanes (const Graphic3d_SequenceOfHClipPlane &thePlanes) override
 Sets list of clip planes for the view. More...
 
const TEL_COLOURBackgroundColor () const
 Returns background color. More...
 
OpenGl_TrihedronChangeTrihedron ()
 Change trihedron. More...
 
OpenGl_GraduatedTrihedronChangeGraduatedTrihedron ()
 Change graduated trihedron. More...
 
void SetTextureEnv (const Handle< OpenGl_Context > &theCtx, const Handle< Graphic3d_TextureEnv > &theTexture)
 
Standard_Real Height () const
 Returns height of view volume. More...
 
Standard_Real Width () const
 Returns width of view volume. More...
 
void SetBackgroundTextureStyle (const Aspect_FillMethod FillStyle)
 
void SetBackgroundGradient (const Quantity_Color &AColor1, const Quantity_Color &AColor2, const Aspect_GradientFillMethod AType)
 
void SetBackgroundGradientType (const Aspect_GradientFillMethod AType)
 
const OpenGl_LayerListLayerList () const
 Returns list of OpenGL Z-layers. More...
 
const OpenGl_ListOfLightLightList () const
 Returns list of openGL light sources. More...
 
const Handle< OpenGl_WindowGlWindow () const
 Returns OpenGL window implementation. More...
 
const Handle< OpenGl_Texture > & GlTextureEnv () const
 Returns OpenGL environment map. More...
 
OpenGl_BVHTreeSelectorBVHTreeSelector ()
 Returns selector for BVH tree, providing a possibility to store information about current view volume and to detect which objects are overlapping it. More...
 
bool HasImmediateStructures () const
 Returns true if there are immediate structures to display. More...
 
 DEFINE_STANDARD_RTTIEXT (OpenGl_View, Graphic3d_CView) friend class OpenGl_GraphicDriver
 Result of shaders initialization. More...
 
- Public Member Functions inherited from Graphic3d_CView
 Graphic3d_CView (const Handle< Graphic3d_StructureManager > &theMgr)
 Constructor. More...
 
virtual ~Graphic3d_CView ()
 Destructor. More...
 
Standard_Integer Identification () const
 Returns the identification number of the view. More...
 
virtual void Activate ()
 Activates the view. Map the associated window on the screen and post the view in this window. Warning: Raises ViewDefinitionError if the associated window isn't defined. More...
 
virtual void Deactivate ()
 Deactivates the view. Unmap the associated window on the screen and unpost the view in this window. Warning: Raises ViewDefinitionError if the associated window isn't defined. More...
 
Standard_Boolean IsActive () const
 Returns the activity flag of the view. More...
 
Standard_Boolean IsRemoved () const
 Returns true if the view was removed. More...
 
Graphic3d_TypeOfVisualization VisualizationType () const
 Returns visualization type of the view. More...
 
void SetVisualizationType (const Graphic3d_TypeOfVisualization theType)
 Sets visualization type of the view. More...
 
void SetComputedMode (const Standard_Boolean theMode)
 Switches computed HLR mode in the view. More...
 
Standard_Boolean ComputedMode () const
 Returns the computed HLR mode state. More...
 
void ReCompute (const Handle< Graphic3d_Structure > &theStructure)
 Computes the new presentation of the structure displayed in this view with the type Graphic3d_TOS_COMPUTED. More...
 
void Update (const Aspect_TypeOfUpdate theUpdateMode)
 Updates screen in function of modifications of the structures. More...
 
Standard_Boolean ContainsFacet () const
 Returns Standard_True if one of the structures displayed in the view contains Polygons, Triangles or Quadrangles. More...
 
Standard_Boolean ContainsFacet (const Graphic3d_MapOfStructure &theSet) const
 Returns Standard_True if one of the structures in the set contains Polygons, Triangles or Quadrangles. More...
 
void DisplayedStructures (Graphic3d_MapOfStructure &theStructures) const
 Returns the set of structures displayed in this view. More...
 
Standard_Integer NumberOfDisplayedStructures () const
 Returns number of displayed structures in the view. More...
 
const Handle< Graphic3d_NMapOfTransient > & HiddenObjects () const
 Returns map of objects hidden within this specific view (not viewer-wise). More...
 
Handle< Graphic3d_NMapOfTransient > & ChangeHiddenObjects ()
 Returns map of objects hidden within this specific view (not viewer-wise). More...
 
Standard_Boolean IsComputed (const Standard_Integer theStructId, Handle< Graphic3d_Structure > &theComputedStruct) const
 Returns Standard_True in case if the structure with the given <theStructId> is in list of structures to be computed and stores computed struct to <theComputedStruct>. More...
 
Bnd_Box MinMaxValues (const Standard_Boolean theToIgnoreInfiniteFlag=Standard_False) const
 Returns the coordinates of the boundary box of all structures displayed in the view. If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box also includes minimum and maximum limits of graphical elements forming parts of infinite structures. More...
 
Bnd_Box MinMaxValues (const Graphic3d_MapOfStructure &theSet, const Standard_Boolean theToIgnoreInfiniteFlag=Standard_False) const
 Returns the coordinates of the boundary box of all structures in the set <theSet>. If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box also includes minimum and maximum limits of graphical elements forming parts of infinite structures. More...
 
const Handle< Graphic3d_StructureManager > & StructureManager () const
 Returns the structure manager handle which manage structures associated with this view. More...
 
virtual void CopySettings (const Handle< Graphic3d_CView > &theOther)
 Copy visualization settings from another view. Method is used for cloning views in viewer when its required to create view with same view properties. More...
 
const Graphic3d_RenderingParamsRenderingParams () const
 Returns current rendering parameters and effect settings. More...
 
Graphic3d_RenderingParamsChangeRenderingParams ()
 Returns reference to current rendering parameters and effect settings. More...
 
- Public Member Functions inherited from MMgt_TShared
virtual void Delete () const override
 Memory deallocator for transient classes. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Member Functions

bool d3dInitLib ()
 Initialize the D3D library. More...
 
bool d3dInit ()
 Initialize Direct3D output device. More...
 
bool d3dReset ()
 Reset Direct3D output settings. Could be used to switch windowed/fullscreen modes. Use very carefully! Most objects should be released before and recreated after! More...
 
bool d3dCreateRenderTarget ()
 (Re-)create D3D surface. More...
 
void d3dBeginRender ()
 Starts the scene render. Clears the backbuffer and sets the device to start rendering to it. More...
 
void d3dEndRender ()
 Ends the scene render. More...
 
bool d3dSwap ()
 Presents to the screen. More...
 
- Protected Member Functions inherited from OpenGl_View
void initTextureEnv (const Handle< OpenGl_Context > &theContext)
 Initializes OpenGl resource for environment texture. More...
 
virtual void redraw (const Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo)
 Redraws view for the given monographic camera projection, or left/right eye. More...
 
virtual bool redrawImmediate (const Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadFbo, OpenGl_FrameBuffer *theDrawFbo, const Standard_Boolean theIsPartialUpdate=Standard_False)
 Redraws view for the given monographic camera projection, or left/right eye. More...
 
bool blitBuffers (OpenGl_FrameBuffer *theReadFbo, OpenGl_FrameBuffer *theDrawFbo, const Standard_Boolean theToFlip=Standard_False)
 Blit image from/to specified buffers. More...
 
void bindDefaultFbo (OpenGl_FrameBuffer *theCustomFbo=NULL)
 Setup default FBO. More...
 
Standard_Boolean updateRaytraceGeometry (const RaytraceUpdateMode theMode, const Standard_Integer theViewId, const Handle< OpenGl_Context > &theGlContext)
 Updates 3D scene geometry for ray-tracing. More...
 
Standard_Boolean updateRaytraceLightSources (const OpenGl_Mat4 &theInvModelView, const Handle< OpenGl_Context > &theGlContext)
 Updates 3D scene light sources for ray-tracing. More...
 
Standard_Boolean updateRaytraceEnvironmentMap (const Handle< OpenGl_Context > &theGlContext)
 Updates environment map for ray-tracing. More...
 
Standard_Boolean toUpdateStructure (const OpenGl_Structure *theStructure)
 Checks to see if the OpenGL structure is modified. More...
 
Standard_Boolean addRaytraceStructure (const OpenGl_Structure *theStructure, const Handle< OpenGl_Context > &theGlContext)
 Adds OpenGL structure to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceGroups (const OpenGl_Structure *theStructure, const OpenGl_RaytraceMaterial &theStructMat, const Graphic3d_Mat4 *theTransform, const Handle< OpenGl_Context > &theGlContext)
 Adds OpenGL groups to ray-traced scene geometry. More...
 
OpenGl_RaytraceMaterial convertMaterial (const OpenGl_AspectFace *theAspect, const Handle< OpenGl_Context > &theGlContext)
 Creates ray-tracing material properties. More...
 
OpenGl_TriangleSetaddRaytracePrimitiveArray (const OpenGl_PrimitiveArray *theArray, const Standard_Integer theMatID, const OpenGl_Mat4 *theTrans)
 Adds OpenGL primitive array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceVertexIndices (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const OpenGl_PrimitiveArray &theArray)
 Adds vertex indices from OpenGL primitive array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceTriangleArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices)
 Adds OpenGL triangle array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceTriangleFanArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices)
 Adds OpenGL triangle fan array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceTriangleStripArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices)
 Adds OpenGL triangle strip array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceQuadrangleArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices)
 Adds OpenGL quadrangle array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytraceQuadrangleStripArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices)
 Adds OpenGL quadrangle strip array to ray-traced scene geometry. More...
 
Standard_Boolean addRaytracePolygonArray (OpenGl_TriangleSet &theSet, const Standard_Integer theMatID, const Standard_Integer theCount, const Standard_Integer theOffset, const Handle< Graphic3d_IndexBuffer > &theIndices)
 Adds OpenGL polygon array to ray-traced scene geometry. More...
 
Standard_Boolean uploadRaytraceData (const Handle< OpenGl_Context > &theGlContext)
 Uploads ray-trace data to the GPU. More...
 
TCollection_AsciiString generateShaderPrefix (const Handle< OpenGl_Context > &theGlContext) const
 Generates shader prefix based on current ray-tracing options. More...
 
Standard_Boolean safeFailBack (const TCollection_ExtendedString &theMessage, const Handle< OpenGl_Context > &theGlContext)
 Performs safe exit when shaders initialization fails. More...
 
Handle< OpenGl_ShaderObjectinitShader (const GLenum theType, const ShaderSource &theSource, const Handle< OpenGl_Context > &theGlContext)
 Loads and compiles shader object from specified source. More...
 
Handle< OpenGl_ShaderPrograminitProgram (const Handle< OpenGl_Context > &theGlContext, const Handle< OpenGl_ShaderObject > &theVertShader, const Handle< OpenGl_ShaderObject > &theFragShader)
 Creates shader program from the given vertex and fragment shaders. More...
 
Standard_Boolean initRaytraceResources (const Handle< OpenGl_Context > &theGlContext)
 Initializes OpenGL/GLSL shader programs. More...
 
void releaseRaytraceResources (const Handle< OpenGl_Context > &theGlContext)
 Releases OpenGL/GLSL shader programs. More...
 
Standard_Boolean updateRaytraceBuffers (const Standard_Integer theSizeX, const Standard_Integer theSizeY, const Handle< OpenGl_Context > &theGlContext)
 Updates auxiliary OpenGL frame buffers. More...
 
void updateCamera (const OpenGl_Mat4 &theOrientation, const OpenGl_Mat4 &theViewMapping, OpenGl_Vec3 *theOrigins, OpenGl_Vec3 *theDirects, OpenGl_Mat4 &theView, OpenGl_Mat4 &theUnView)
 Generates viewing rays for corners of screen quad. More...
 
void bindRaytraceTextures (const Handle< OpenGl_Context > &theGlContext)
 Binds ray-trace textures to corresponding texture units. More...
 
void unbindRaytraceTextures (const Handle< OpenGl_Context > &theGlContext)
 Unbinds ray-trace textures from corresponding texture unit. More...
 
Standard_Boolean setUniformState (const OpenGl_Vec3 *theOrigins, const OpenGl_Vec3 *theDirects, const OpenGl_Mat4 &theViewMat, const OpenGl_Mat4 &theUnviewMat, const Standard_Integer theProgramId, const Handle< OpenGl_Context > &theGlContext)
 Sets uniform state for the given ray-tracing shader program. More...
 
Standard_Boolean runRaytraceShaders (const Standard_Integer theSizeX, const Standard_Integer theSizeY, const OpenGl_Vec3 *theOrigins, const OpenGl_Vec3 *theDirects, const OpenGl_Mat4 &theViewMat, const OpenGl_Mat4 &theUnviewMat, Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Handle< OpenGl_Context > &theGlContext)
 Runs ray-tracing shader programs. More...
 
Standard_Boolean raytrace (const Standard_Integer theSizeX, const Standard_Integer theSizeY, Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Handle< OpenGl_Context > &theGlContext)
 Redraws the window using OpenGL/GLSL ray-tracing. More...
 
virtual void render (Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Standard_Boolean theToDrawImmediate)
 Renders the graphical contents of the view into the preprepared window or framebuffer. More...
 
virtual void renderScene (Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Standard_Boolean theToDrawImmediate)
 Renders the graphical scene. More...
 
virtual void drawBackground (const Handle< OpenGl_Workspace > &theWorkspace)
 Draw background (gradient / image) More...
 
virtual void renderStructs (Graphic3d_Camera::Projection theProjection, OpenGl_FrameBuffer *theReadDrawFbo, const Standard_Boolean theToDrawImmediate)
 Render set of structures presented in the view. More...
 
void renderTrihedron (const Handle< OpenGl_Workspace > &theWorkspace)
 Renders trihedron. More...
 
- Protected Member Functions inherited from Graphic3d_DataStructureManager
 Graphic3d_DataStructureManager ()
 Initializes the manager <me>. More...
 

Static Protected Member Functions

static TCollection_AsciiString d3dFormatError (const long theErrCode)
 Auxiliary method. More...
 

Protected Attributes

IDirect3D9 * myD3dLib
 Direct3D library instance. More...
 
IDirect3DDevice9 * myD3dDevice
 Direct3D device object. More...
 
NCollection_Handle< D3DPRESENT_PARAMETERSmyD3dParams
 parameters for created Direct3D device More...
 
unsigned int myRefreshRate
 refresh rate in fullscreen mode More...
 
bool myIsD3dEx
 D3dEx flag for WDDM. More...
 
Handle< D3DHost_FrameBuffermyD3dWglFbo
 D3D/WGL interop FBO. More...
 
- Protected Attributes inherited from OpenGl_View
GLint myFboColorFormat
 Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More...
 
GLint myFboDepthFormat
 sized format for depth-stencil attachments More...
 
Handle< OpenGl_FrameBuffermyMainSceneFbos [2]
 Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More...
 
Handle< OpenGl_FrameBuffermyImmediateSceneFbos [2]
 Additional buffers for immediate layer in stereo mode. More...
 
OpenGl_VertexBuffer myFullScreenQuad
 Vertices for full-screen quad rendering. More...
 
OpenGl_VertexBuffer myFullScreenQuadFlip
 Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More...
 
Standard_Boolean myToFlipOutput
 Flag to draw result image upside-down. More...
 
unsigned int myFrameCounter
 redraw counter, for debugging More...
 
Standard_Boolean myHasFboBlit
 Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More...
 
Standard_Boolean myTransientDrawToFront
 optimization flag for immediate mode (to render directly to the front buffer) More...
 
Standard_Boolean myBackBufferRestored
 Two framebuffers (left and right views) store cached main presentation of the view (without presentation of immediate layers). More...
 
Standard_Boolean myIsImmediateDrawn
 flag indicates that immediate mode buffer contains some data More...
 
OpenGl_AspectFacemyTextureParams
 Stores texture and its parameters for textured background. More...
 
OpenGl_BackgroundArraymyBgGradientArray
 Primitive array for gradient background. More...
 
OpenGl_BackgroundArraymyBgTextureArray
 Primitive array for texture background. More...
 
OpenGl_GraphicDrivermyDriver
 main list of displayed structure, sorted by layers More...
 
Handle< OpenGl_WindowmyWindow
 main list of displayed structure, sorted by layers More...
 
Handle< OpenGl_WorkspacemyWorkspace
 main list of displayed structure, sorted by layers More...
 
Handle< OpenGl_CapsmyCaps
 main list of displayed structure, sorted by layers More...
 
Standard_BooleanmyDeviceLostFlag
 main list of displayed structure, sorted by layers More...
 
Standard_Boolean myWasRedrawnGL
 main list of displayed structure, sorted by layers More...
 
Standard_Boolean myAntiAliasing
 main list of displayed structure, sorted by layers More...
 
Standard_Boolean myCulling
 main list of displayed structure, sorted by layers More...
 
Graphic3d_TypeOfShadingModel myShadingModel
 main list of displayed structure, sorted by layers More...
 
Graphic3d_TypeOfSurfaceDetail mySurfaceDetail
 main list of displayed structure, sorted by layers More...
 
Graphic3d_TypeOfBackfacingModel myBackfacing
 main list of displayed structure, sorted by layers More...
 
TEL_COLOUR myBgColor
 main list of displayed structure, sorted by layers More...
 
OPENGL_FOG myFog
 main list of displayed structure, sorted by layers More...
 
OPENGL_ZCLIP myZClip
 main list of displayed structure, sorted by layers More...
 
Graphic3d_SequenceOfHClipPlane myClipPlanes
 main list of displayed structure, sorted by layers More...
 
Handle< Graphic3d_CameramyCamera
 main list of displayed structure, sorted by layers More...
 
Handle< OpenGl_FrameBuffermyFBO
 main list of displayed structure, sorted by layers More...
 
Standard_Boolean myUseGLLight
 main list of displayed structure, sorted by layers More...
 
Standard_Boolean myToShowTrihedron
 main list of displayed structure, sorted by layers More...
 
Standard_Boolean myToShowGradTrihedron
 main list of displayed structure, sorted by layers More...
 
TCollection_AsciiString myBackgroundImagePath
 main list of displayed structure, sorted by layers More...
 
Handle< Graphic3d_TextureEnvmyTextureEnvData
 main list of displayed structure, sorted by layers More...
 
Graphic3d_GraduatedTrihedron myGTrihedronData
 main list of displayed structure, sorted by layers More...
 
OpenGl_ListOfLight myLights
 main list of displayed structure, sorted by layers More...
 
OpenGl_LayerList myZLayers
 main list of displayed structure, sorted by layers More...
 
Graphic3d_WorldViewProjState myWorldViewProjState
 camera modification state More...
 
OpenGl_StateCountermyStateCounter
 main list of displayed structure, sorted by layers More...
 
Standard_Size myCurrLightSourceState
 main list of displayed structure, sorted by layers More...
 
StateInfo myLastOrientationState
 main list of displayed structure, sorted by layers More...
 
StateInfo myLastViewMappingState
 main list of displayed structure, sorted by layers More...
 
StateInfo myLastLightSourceState
 main list of displayed structure, sorted by layers More...
 
OpenGl_BVHTreeSelector myBVHSelector
 Is needed for selection of overlapping objects and storage of the current view volume. More...
 
OpenGl_Trihedron myTrihedron
 main list of displayed structure, sorted by layers More...
 
OpenGl_GraduatedTrihedron myGraduatedTrihedron
 main list of displayed structure, sorted by layers More...
 
Handle< OpenGl_TexturemyTextureEnv
 main list of displayed structure, sorted by layers More...
 
RaytraceInitStatus myRaytraceInitStatus
 Result of shaders initialization. More...
 
Standard_Boolean myIsRaytraceDataValid
 Is geometry data valid? More...
 
Standard_Boolean myIsRaytraceWarnTextures
 Warning about missing extension GL_ARB_bindless_texture has been displayed? More...
 
OpenGl_RaytraceGeometry myRaytraceGeometry
 3D scene geometry data for ray-tracing. More...
 
RaytracingParams myRaytraceParameters
 Compile-time ray-tracing parameters. More...
 
Standard_ShortReal myRaytraceSceneRadius
 Radius of bounding sphere of the scene. More...
 
Standard_ShortReal myRaytraceSceneEpsilon
 Scene epsilon to prevent self-intersections. More...
 
ShaderSource myRaytraceShaderSource
 OpenGL/GLSL source of ray-tracing fragment shader. More...
 
ShaderSource myPostFSAAShaderSource
 OpenGL/GLSL source of adaptive-AA fragment shader. More...
 
Handle< OpenGl_ShaderObjectmyRaytraceShader
 OpenGL/GLSL ray-tracing fragment shader. More...
 
Handle< OpenGl_ShaderObjectmyPostFSAAShader
 OpenGL/GLSL adaptive-AA fragment shader. More...
 
Handle< OpenGl_ShaderProgrammyRaytraceProgram
 OpenGL/GLSL ray-tracing shader program. More...
 
Handle< OpenGl_ShaderProgrammyPostFSAAProgram
 OpenGL/GLSL adaptive-AA shader program. More...
 
Handle< OpenGl_ShaderProgrammyOutImageProgram
 OpenGL/GLSL program for displaying texture. More...
 
Handle< OpenGl_TextureBufferArbmySceneNodeInfoTexture
 Texture buffer of data records of bottom-level BVH nodes. More...
 
Handle< OpenGl_TextureBufferArbmySceneMinPointTexture
 Texture buffer of minimum points of bottom-level BVH nodes. More...
 
Handle< OpenGl_TextureBufferArbmySceneMaxPointTexture
 Texture buffer of maximum points of bottom-level BVH nodes. More...
 
Handle< OpenGl_TextureBufferArbmySceneTransformTexture
 Texture buffer of transformations of high-level BVH nodes. More...
 
Handle< OpenGl_TextureBufferArbmyGeometryVertexTexture
 Texture buffer of vertex coords. More...
 
Handle< OpenGl_TextureBufferArbmyGeometryNormalTexture
 Texture buffer of vertex normals. More...
 
Handle< OpenGl_TextureBufferArbmyGeometryTexCrdTexture
 Texture buffer of vertex UV coords. More...
 
Handle< OpenGl_TextureBufferArbmyGeometryTriangTexture
 Texture buffer of triangle indices. More...
 
Handle< OpenGl_TextureBufferArbmyRaytraceMaterialTexture
 Texture buffer of material properties. More...
 
Handle< OpenGl_TextureBufferArbmyRaytraceLightSrcTexture
 Texture buffer of light source properties. More...
 
Handle< OpenGl_FrameBuffermyRaytraceFBO1 [2]
 1st framebuffer (FBO) to perform adaptive FSAA. More...
 
Handle< OpenGl_FrameBuffermyRaytraceFBO2 [2]
 2nd framebuffer (FBO) to perform adaptive FSAA. More...
 
Handle< OpenGl_FrameBuffermyOpenGlFBO
 Framebuffer (FBO) for preliminary OpenGL output. More...
 
Handle< OpenGl_FrameBuffermyOpenGlFBO2
 Result of shaders initialization. More...
 
OpenGl_VertexBuffer myRaytraceScreenQuad
 Vertex buffer (VBO) for drawing dummy quad. More...
 
Standard_Integer myUniformLocations [2][OpenGl_RT_NbVariables]
 Cached locations of frequently used uniform variables. More...
 
std::map< const OpenGl_Structure *, StructStatemyStructureStates
 State of OpenGL structures reflected to ray-tracing. More...
 
std::map< Standard_Size, OpenGl_TriangleSet * > myArrayToTrianglesMap
 PrimitiveArray to TriangleSet map for scene partial update. More...
 
std::set< Standard_IntegermyNonRaytraceStructureIDs
 Set of IDs of non-raytracable elements (to detect updates). More...
 
Handle< OpenGl_RaytraceFiltermyRaytraceFilter
 Render filter to filter out all raytracable structures. More...
 
Standard_Boolean myToUpdateEnvironmentMap
 Marks if environment map should be updated. More...
 
Standard_Size myLayerListState
 State of OpenGL layer list. More...
 
Standard_Integer myAccumFrames
 Number of accumulated frames (for progressive rendering). More...
 
OpenGl_Vec3 myPreviousOrigins [3]
 Stored ray origins used for detection of camera movements. More...
 
math_BullardGenerator myRNG
 Bullard RNG to produce random sequence. More...
 
- Protected Attributes inherited from Graphic3d_CView
Standard_Integer myId
 
Graphic3d_RenderingParams myRenderParams
 
Handle< Graphic3d_StructureManagermyStructureManager
 
Graphic3d_SequenceOfStructure myStructsToCompute
 
Graphic3d_SequenceOfStructure myStructsComputed
 
Graphic3d_MapOfStructure myStructsDisplayed
 
Handle< Graphic3d_NMapOfTransientmyHiddenObjects
 
Standard_Boolean myIsInComputedMode
 
Standard_Boolean myIsActive
 
Standard_Boolean myIsRemoved
 
Graphic3d_TypeOfVisualization myVisualization
 
CachedMinMax myMinMax
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 
- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 
- Protected Types inherited from OpenGl_View
enum  RaytraceInitStatus { OpenGl_RT_NONE, OpenGl_RT_INIT, OpenGl_RT_FAIL }
 Result of OpenGL shaders initialization. More...
 
enum  RaytraceUpdateMode { OpenGl_GUM_CHECK, OpenGl_GUM_PREPARE, OpenGl_GUM_REBUILD }
 Describes update mode (state). More...
 
enum  ShaderVariableIndex {
  OpenGl_RT_aPosition, OpenGl_RT_uOriginLT, OpenGl_RT_uOriginLB, OpenGl_RT_uOriginRT,
  OpenGl_RT_uOriginRB, OpenGl_RT_uDirectLT, OpenGl_RT_uDirectLB, OpenGl_RT_uDirectRT,
  OpenGl_RT_uDirectRB, OpenGl_RT_uViewMat, OpenGl_RT_uUnviewMat, OpenGl_RT_uSceneRad,
  OpenGl_RT_uSceneEps, OpenGl_RT_uLightAmbnt, OpenGl_RT_uLightCount, OpenGl_RT_uBackColorTop,
  OpenGl_RT_uBackColorBot, OpenGl_RT_uShadowsEnabled, OpenGl_RT_uReflectEnabled, OpenGl_RT_uSphereMapEnabled,
  OpenGl_RT_uSphereMapForBack, OpenGl_RT_uTexSamplersArray, OpenGl_RT_uBlockedRngEnabled, OpenGl_RT_uSampleWeight,
  OpenGl_RT_uFrameRndSeed, OpenGl_RT_uOffsetX, OpenGl_RT_uOffsetY, OpenGl_RT_uSamples,
  OpenGl_RT_NbVariables
}
 Defines frequently used shader variables. More...
 
enum  ShaderSamplerNames {
  OpenGl_RT_SceneNodeInfoTexture = 0, OpenGl_RT_SceneMinPointTexture = 1, OpenGl_RT_SceneMaxPointTexture = 2, OpenGl_RT_SceneTransformTexture = 3,
  OpenGl_RT_GeometryVertexTexture = 4, OpenGl_RT_GeometryNormalTexture = 5, OpenGl_RT_GeometryTexCrdTexture = 6, OpenGl_RT_GeometryTriangTexture = 7,
  OpenGl_RT_EnvironmentMapTexture = 8, OpenGl_RT_RaytraceMaterialTexture = 9, OpenGl_RT_RaytraceLightSrcTexture = 10, OpenGl_RT_FsaaInputTexture = 11,
  OpenGl_RT_PrevAccumTexture = 12, OpenGl_RT_DepthTexture = 13, OpenGl_RT_OpenGlColorTexture = 14, OpenGl_RT_OpenGlDepthTexture = 15
}
 Defines texture samplers. More...
 
typedef std::pair< Standard_Size, Standard_SizeStateInfo
 main list of displayed structure, sorted by layers More...
 
- Static Protected Attributes inherited from OpenGl_View
static const Standard_Integer THE_DEFAULT_NB_BOUNCES = 3
 Default ray-tracing depth. More...
 
static const Standard_Integer THE_DEFAULT_STACK_SIZE = 24
 Default size of traversal stack. More...
 

Detailed Description

The D3D host view implementation that overrides rendering methods.

Constructor & Destructor Documentation

D3DHost_View::D3DHost_View ( const Handle< Graphic3d_StructureManager > &  theMgr,
const Handle< D3DHost_GraphicDriver > &  theDriver,
const Handle< OpenGl_Caps > &  theCaps,
Standard_Boolean theDeviceLostFlag,
OpenGl_StateCounter theCounter 
)

Constructor.

virtual D3DHost_View::~D3DHost_View ( )
virtual

Default destructor.

Member Function Documentation

void D3DHost_View::d3dBeginRender ( )
protected

Starts the scene render. Clears the backbuffer and sets the device to start rendering to it.

IDirect3DSurface9* D3DHost_View::D3dColorSurface ( ) const
inline

Return D3D surface.

bool D3DHost_View::d3dCreateRenderTarget ( )
protected

(Re-)create D3D surface.

IDirect3DDevice9* D3DHost_View::D3dDevice ( ) const
inline

Access Direct3D device instance.

void D3DHost_View::d3dEndRender ( )
protected

Ends the scene render.

static TCollection_AsciiString D3DHost_View::d3dFormatError ( const long  theErrCode)
staticprotected

Auxiliary method.

bool D3DHost_View::d3dInit ( )
protected

Initialize Direct3D output device.

bool D3DHost_View::d3dInitLib ( )
protected

Initialize the D3D library.

bool D3DHost_View::d3dReset ( )
protected

Reset Direct3D output settings. Could be used to switch windowed/fullscreen modes. Use very carefully! Most objects should be released before and recreated after!

bool D3DHost_View::d3dSwap ( )
protected

Presents to the screen.

const Handle< D3DHost_FrameBuffer >& D3DHost_View::D3dWglBuffer ( ) const
inline

Return D3D/WGL FBO.

bool D3DHost_View::isD3dEx ( ) const
inline
Returns
true if IDirect3DDevice9Ex device has been created
virtual void D3DHost_View::Redraw ( )
overridevirtual

Redraw the all content.

Reimplemented from OpenGl_View.

virtual void D3DHost_View::RedrawImmediate ( )
overridevirtual

Redraw only immediate layer.

Reimplemented from OpenGl_View.

virtual void D3DHost_View::Resized ( )
overridevirtual

Resizes the window.

Reimplemented from OpenGl_View.

virtual void D3DHost_View::SetWindow ( const Handle< Aspect_Window > &  theWindow,
const Aspect_RenderingContext  theContext 
)
overridevirtual

Creates and maps rendering window to the view.

Parameters
theWindow[in] the window.
theContext[in] the rendering context. If NULL the context will be created internally.
theDisplayCB[in] the display callback function. If is not a NULL value, then the callback will be invoked at the end of the OCC graphic traversal and just before the swap of buffers.
theClientData[in] the client data for the callback.

Reimplemented from OpenGl_View.

Field Documentation

IDirect3DDevice9* D3DHost_View::myD3dDevice
protected

Direct3D device object.

IDirect3D9* D3DHost_View::myD3dLib
protected

Direct3D library instance.

NCollection_Handle<D3DPRESENT_PARAMETERS> D3DHost_View::myD3dParams
protected

parameters for created Direct3D device

Handle< D3DHost_FrameBuffer > D3DHost_View::myD3dWglFbo
protected

D3D/WGL interop FBO.

bool D3DHost_View::myIsD3dEx
protected

D3dEx flag for WDDM.

unsigned int D3DHost_View::myRefreshRate
protected

refresh rate in fullscreen mode


The documentation for this class was generated from the following file: