Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoRenderToTextureProperty.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2021 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : C. OGNIER (Dec 2004)
22**=======================================================================*/
23
24
25#ifndef _SO_RENDER_TO_TEXTURE_PROPERTY_
26#define _SO_RENDER_TO_TEXTURE_PROPERTY_
27
28#include <Inventor/nodes/SoNode.h>
29#include <Inventor/fields/SoMFNode.h>
30#include <Inventor/fields/SoSFEnum.h>
31#include <Inventor/fields/SoSFColor.h>
32#include <Inventor/fields/SoMFPath.h>
33#include <Inventor/fields/SoSFVec2s.h>
34#include <Inventor/fields/SoSFTrigger.h>
35#include <Inventor/actions/SoGLRenderAction.h>
36#include <Inventor/sensors/SoFieldSensor.h>
37#include <Inventor/components/SoGLGraphicConfigTemplate.h>
38#include <Inventor/sys/SoGLType.h>
39#include <Inventor/helpers/SbGlContextHelper.h>
40
41#include <SoDeprecationRules.h>
42
43#ifndef HIDDEN_FROM_DOC
45namespace inventor
46{
47 namespace impl
48 {
49 class SoTextureCubeMapImpl;
50 class SoTextureImpl;
51 class SoTexture2Impl;
52 class SoViewingCubeImpl;
53 }
54}
56#endif
57
58class SoTexture;
59
60SO_PIMPL_PUBLIC_DECLARATION(SoRenderToTextureProperty)
61
62
63
105{
107 SO_PIMPL_FINAL_PUBLIC_HEADER(SoRenderToTextureProperty)
108
109 public:
110
112
129
141 RGB_ALPHA = RGB_TRANSPARENCY,
145 DEPTH
146 };
147
148
149 // Fields
166
183
189
194
200
206
212
217
222
223#if 1 SoDEPRECATED
227SoDEPRECATED
230SoDEPRECATED
233
234#endif
238private:
239 virtual void GLRender(SoGLRenderAction *action);
240
241private:
242 static void initClass();
243 static void exitClass();
244
246 virtual void fieldHasChanged( SoField* field );
247 virtual void notify( SoNotList *list );
248
255 void setTexture(SoTexture* texture);
256
257private:
259
260#ifndef HIDDEN_FROM_DOC
261 // friendship to access SoRenderToTextureProperty::getImpl<>
262 friend class SoTextureCubeMap;
263 friend class inventor::impl::SoTextureCubeMapImpl;
264 friend class SoTexture2;
265 friend class inventor::impl::SoTextureImpl;
266 friend class inventor::impl::SoTexture2Impl;
267 friend class inventor::impl::SoViewingCubeImpl;
268#endif // HIDDEN_FROM_DOC
269
270};
271
272#endif /* _SO_RENDER_TO_TEXTURE_PROPERTY_ */
Base class for all fields.
Definition SoField.h:234
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> OpenGL context m...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Defines an OpenG...
Renders a scene graph using Open Inventor's Render Engine.
Multiple-value field containing any number of nodes.
Definition SoMFNode.h:94
Multiple-value field containing any number of paths.
Definition SoMFPath.h:92
Abstract base class for all database nodes.
Definition SoNode.h:145
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Class for creati...
SoGLRenderAction * getGLRenderAction() const
Returns the render action used for rendering the scene.
UpdatePolicy
Update Policy enumeration values.
@ EACH_FRAME
The texture is updated at each traversal of the shape it is mapped to.
SoSFVec2s size
Size in pixels of the rendered texture.
Component
Rendering component enumeration values.
@ RGB_TRANSPARENCY
The RGB and alpha components are rendered to the texture.
SoSFEnum updatePolicy
Specifies the policy for rendering to the texture.
SoSFEnum component
Specifies the type of component(s) for the rendering.
SoSFColor backgroundColor
Background color used when rendering the scene graph.
SoSFTrigger trigger
Trigger field to render the scene into the Pbuffer.
SoDEPRECATED SoGLGraphicConfigTemplate * getGraphicConfigTemplate()
SoDEPRECATED void setContextForSharing(SoGLContext *)
SoMFPath path
Specifies the scene graph(s) (SoPath(s)) to be rendered into the texture.
SoDEPRECATED void setGraphicConfigTemplate(SoGLGraphicConfigTemplate *)
SoMFNode node
Specifies the scene graph(s) (SoNode(s)) to be rendered into the texture.
void setGLRenderAction(SoGLRenderAction *ra)
Specifies a custom render action to use for rendering the scene.
Field containing an RGB color.
Definition SoSFColor.h:82
Field containing an enumerated value.
Definition SoSFEnum.h:89
Field used to trigger engines or connection networks.
Definition SoSFTrigger.h:85
Field containing a two-dimensional vector.
Definition SoSFVec2s.h:52
2D texture mapping node.
Definition SoTexture2.h:261
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Cube texture map...
Abstract base class for texture mapping nodes.
Definition SoTexture.h:155