00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _SO_TRANSPARENCY_TYPE_ELEMENT
00025 #define _SO_TRANSPARENCY_TYPE_ELEMENT
00026
00027 #include <Inventor/elements/SoInt32Element.h>
00028 #include <Inventor/threads/SbThreadLocalStorage.h>
00029 #include <Inventor/actions/SoGLRenderAction.h>
00030
00051 SoEXTENDER_Documented class SoDEPRECATED SoTransparencyTypeElement : public SoInt32Element {
00052
00053 SO_ELEMENT_HEADER(SoTransparencyTypeElement);
00054
00055 public:
00057 enum TransparencyType {
00059 SCREEN_DOOR = SoGLRenderAction::SCREEN_DOOR,
00060
00062 ADD = SoGLRenderAction::ADD,
00063
00065 BLEND = SoGLRenderAction::BLEND,
00066
00068 DELAYED_ADD = SoGLRenderAction::DELAYED_ADD,
00069
00071 DELAYED_BLEND = SoGLRenderAction::DELAYED_BLEND,
00072
00074 SORTED_OBJECT_ADD = SoGLRenderAction::SORTED_OBJECT_ADD,
00075
00077 SORTED_OBJECT_BLEND = SoGLRenderAction::SORTED_OBJECT_BLEND,
00078
00080 SORTED_TRIANGLES_ADD = SoGLRenderAction::SORTED_TRIANGLES_ADD,
00081
00083 SORTED_TRIANGLES_BLEND = SoGLRenderAction::SORTED_TRIANGLES_BLEND,
00084
00086 SORTED_OBJECT_TRIANGLES_ADD = SoGLRenderAction::SORTED_OBJECT_TRIANGLES_ADD,
00087
00089 SORTED_OBJECT_TRIANGLES_BLEND = SoGLRenderAction::SORTED_OBJECT_TRIANGLES_BLEND,
00090
00093 SORTED_PIXELS_BLEND = SoGLRenderAction::SORTED_PIXELS_BLEND,
00094
00096 SORTED_LAYERS_BLEND = SORTED_PIXELS_BLEND,
00097
00100 DELAYED_SORTED_PIXELS_BLEND = SoGLRenderAction::DELAYED_SORTED_PIXELS_BLEND,
00101
00103 DELAYED_SORTED_LAYERS_BLEND = DELAYED_SORTED_PIXELS_BLEND,
00104
00108 NO_TRANSPARENCY = SoGLRenderAction::NO_TRANSPARENCY
00109
00110 };
00111
00115 static void set(SoState *state, TransparencyType type);
00116
00117 #ifndef IV_STRICT
00118
00121 static void set(SoState *state, SoNode *, TransparencyType type);
00122 #endif
00123
00127 static TransparencyType get(SoState *state);
00128
00132 static TransparencyType getDefault();
00133
00137 virtual void print(FILE *fp) const;
00138
00139 private:
00140
00142 virtual void init(SoState *state);
00143
00144 private:
00146 static void initClass();
00147
00149 static void exitClass();
00150
00151 static void setSmooth(const SbBool smooth);
00152 static SbBool isSmoothing();
00153
00154 static void setSmoothingChanged(const SbBool smooth);
00155 static SbBool isSmoothingChanged();
00156
00158 SB_THREAD_TLS_HEADER();
00159
00161 static bool isDelayedType(TransparencyType transparencyType);
00162
00164 static bool isFixedPipelineShaderRequired(TransparencyType transparencyType);
00165
00166 private:
00167 virtual ~SoTransparencyTypeElement();
00168
00170 static SbThreadMutex s_classMutex;
00171 struct MTstruct
00172 {
00173 SbBool doSmooth;
00174 SbBool smoothingChanged;
00175 };
00176 };
00177
00178 #endif // _SO_TRANSPARENCY_TYPE_ELEMENT
00179
00180
00181