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/SoSFVec2i32.h>
00032 #include <Inventor/nodes/SoSeparator.h>
00033
00034 class SoRenderToTargetImpl;
00035
00036
00137 class SoRenderToTarget : public SoSeparator
00138 {
00139 SO_NODE_HEADER( SoRenderToTarget );
00140
00141 public:
00142
00148 enum Attachment
00149 {
00151 COLOR0,
00152 COLOR1,
00153 COLOR2,
00154 COLOR3,
00155 COLOR4,
00156 COLOR5,
00157 COLOR6,
00158 COLOR7,
00159 COLOR8,
00160 COLOR9,
00161 COLOR10,
00162 COLOR11,
00163 COLOR12,
00164 COLOR13,
00165 COLOR14,
00166 COLOR15,
00167 DEPTH,
00168 STENCIL,
00170 LAST_ENTRY
00171 };
00172
00176 enum Mode
00177 {
00182 AUTO,
00183
00188 INTERNAL,
00189
00193 TARGET_COPY,
00194
00198 NONE
00199 };
00200
00210 SoMFEnum modes;
00211
00221 SoMFNode targets;
00222
00229 SoMFInt32 layers;
00230
00234 SoSFBool clearTargets;
00235
00244 SoSFFloat antialiasingQuality;
00245
00251 SoSFVec2i32 size;
00252
00259 SoSFBool enableFragmentsQuery;
00260
00264 SoRenderToTarget();
00265
00272 static SbBool isSupported(SoState* state = NULL);
00273
00280 int getRasterizedSamplesCount() const;
00281
00282 private:
00283
00285 static void initClass();
00286
00288 static void exitClass();
00289
00291 virtual void notify(SoNotList *list);
00292
00293 private:
00294
00296 virtual void GLRenderBelowPath(SoGLRenderAction *action);
00297
00299 virtual void GLRenderInPath(SoGLRenderAction *action);
00300
00302 virtual void GLRenderOffPath(SoGLRenderAction *action);
00303
00304 private:
00306 virtual ~SoRenderToTarget();
00307
00308 private:
00309 SoRenderToTargetImpl* m_impl;
00310 };
00311
00312 #endif // SO_RENDERTOTEXTURE_H
00313
00314
00315