00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #if !defined(SO_RENDERTOTARGET_H)
00025 #define SO_RENDERTOTARGET_H
00026
00027 #include <Inventor/fields/SoMFEnum.h>
00028 #include <Inventor/fields/SoMFNode.h>
00029 #include <Inventor/fields/SoSFBool.h>
00030 #include <Inventor/fields/SoSFFloat.h>
00031 #include <Inventor/fields/SoSFInt32.h>
00032 #include <Inventor/fields/SoSFVec2i32.h>
00033 #include <Inventor/fields/SoSFVec4f.h>
00034 #include <Inventor/nodes/SoSeparator.h>
00035 #include <Inventor/SbPImpl.h>
00036
00037 SO_PIMPL_PUBLIC_DECLARATION(SoRenderToTarget)
00038
00039
00143 class SoRenderToTarget : public SoSeparator
00144 {
00145 SO_NODE_HEADER( SoRenderToTarget );
00146 SO_PIMPL_PUBLIC_HEADER(SoRenderToTarget)
00147
00148 public:
00149
00155 enum Attachment
00156 {
00158 COLOR0,
00159 COLOR1,
00160 COLOR2,
00161 COLOR3,
00162 COLOR4,
00163 COLOR5,
00164 COLOR6,
00165 COLOR7,
00166 COLOR8,
00167 COLOR9,
00168 COLOR10,
00169 COLOR11,
00170 COLOR12,
00171 COLOR13,
00172 COLOR14,
00173 COLOR15,
00174 DEPTH,
00175 STENCIL,
00176 DEPTH_STENCIL,
00178 LAST_ENTRY
00179 };
00180
00184 enum Mode
00185 {
00190 AUTO,
00191
00196 INTERNAL,
00197
00201 TARGET_COPY,
00202
00206 NONE
00207 };
00208
00218 SoMFEnum modes;
00219
00230 SoMFNode targets;
00231
00272 SoMFInt32 layers;
00273
00277 SoSFBool clearTargets;
00278
00282 SoSFVec4f clearColorValue;
00283
00287 SoSFFloat clearDepthValue;
00288
00292 SoSFInt32 clearStencilValue;
00293
00302 SoSFFloat antialiasingQuality;
00303
00309 SoSFVec2i32 size;
00310
00317 SoSFBool enableFragmentsQuery;
00318
00322 SoRenderToTarget();
00323
00330 static SbBool isSupported(SoState* state = NULL);
00331
00338 int getRasterizedSamplesCount() const;
00339
00340 private:
00341
00343 static void initClass();
00344
00346 static void exitClass();
00347
00348 private:
00349
00351 virtual void GLRenderBelowPath(SoGLRenderAction *action);
00352
00354 virtual void GLRenderInPath(SoGLRenderAction *action);
00355
00357 virtual void GLRenderOffPath(SoGLRenderAction *action);
00358
00359 private:
00361 virtual ~SoRenderToTarget();
00362
00363 private:
00364
00365 void commonConstructor();
00366 };
00367
00368 #endif // SO_RENDERTOTEXTURE_H
00369
00370
00371