MeVisLab Resolution Independence API
SoMultiPassFramebufferSampler.h
Go to the documentation of this file.
1/*************************************************************************************
2**
3** Copyright 2007, MeVis Medical Solutions AG
4**
5** The user may use this file in accordance with the license agreement provided with
6** the Software or, alternatively, in accordance with the terms contained in a
7** written agreement between the user and MeVis Medical Solutions AG.
8**
9** For further information use the contact form at https://www.mevislab.de/contact
10**
11**************************************************************************************/
12
13#ifndef SO_MULTI_PASS_FRAMEBUFFER_SAMPLER_H
14#define SO_MULTI_PASS_FRAMEBUFFER_SAMPLER_H
15
16
18
19#include "SoShaderSystem.h"
21#include <Inventor/fields/SoSFUInt32.h>
22#include <Inventor/fields/SoSFFloat.h>
23#include <Inventor/fields/SoSFBool.h>
24#include <Inventor/SbLinear.h>
25
26class SoGLFramebufferObject;
27class SoGLTexture;
28
31{
33
34 SO_NODE_HEADER(SoMultiPassFramebufferSampler);
35
36 public:
37
39 SoSFUInt32 numPasses;
40
42 SoSFFloat epsilon;
43
45 SoSFFloat value;
46
48 SoSFUInt32 id;
49
52
55
56 SoINTERNAL public:
57
59 static void initClass();
60
62 unsigned int curPass() {
63 return _curPass;
64 }
65
66 SoEXTENDER public:
67
68 SoGLTexture *getCopyColorBuffer() const {
69 return _copyColorBuffer;
70 }
71
72 protected:
73
74 unsigned int _curPass;
75 SbVec2s _prevSize;
76 uint32_t _prevFormat;
77
80
82 void applyRenderAction(SoState *) override;
83
84 private:
85
86 SoGLFramebufferObject *_copyFramebufferObject;
87 SoGLTexture *_copyColorBuffer;
88};
89
90#endif // _SO_MULTIPASS_FRAMEBUFFER_SAMPLER_
#define INVENTOR_SHADER_API
Define class export specifier.
Open Inventor sampler node that gets it's 2D image from a framebuffer object.
Open Inventor node to accumulate multiple render passes in a sampler.
void applyRenderAction(SoState *) override
Function applies render action to children multiple times.
SoSFFloat epsilon
Smallest value that keeps the node still iterating.
SoSFUInt32 id
Id that is used to identify this node if nested.
unsigned int curPass()
Current render pass, starting with '0'. Only valid if read by child nodes!
~SoMultiPassFramebufferSampler() override
Destructor.
SoMultiPassFramebufferSampler()
Constructor.
static void initClass()
Initialize class with runtime type system.
SoSFFloat value
Value to compare against 'epsilon'.
SoSFBool initSamplerCopy
Initialize the copy FBO texture with all zero.
SoSFUInt32 numPasses
Number of times to traverse the subgraph below.