ROOT logo
// $Id: ZGlBlending.h 2145 2009-02-26 22:09:19Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef GledCore_ZGlBlending_H
#define GledCore_ZGlBlending_H

#include <Glasses/ZRnrModBase.h>
#include <Stones/ZColor.h>

class ZGlBlending : public ZRnrModBase
{
  // 7777 AddViewInclude(GL/glew.h)
  // 7777 RnrCtrl(RnrBits(0,4,0,0))
  MAC_RNR_FRIENDS(ZGlBlending);

private:
  void _init();

protected:
  // Blend mode
  // missing support for glBlendFuncSeparate
  ZRnrModBase::Operation_e
                mBlendOp;     // X{GS}  7 PhonyEnum()
  Int_t		mBSrcFac;     // X{GS}  7 PhonyEnum(-width=>11, -vals=>[GL_ZERO,Zero, GL_ONE,One, GL_DST_COLOR,DstColor, GL_ONE_MINUS_DST_COLOR,OMDstColor, GL_SRC_ALPHA,SrcAlpha, GL_ONE_MINUS_SRC_ALPHA,OMSrcAlpha, GL_DST_ALPHA,DstAplha, GL_ONE_MINUS_DST_ALPHA,OMDstAlpha, GL_SRC_ALPHA_SATURATE,SrcAlphaSaturate, GL_CONSTANT_COLOR,ConstColor, GL_ONE_MINUS_CONSTANT_COLOR,OMConstCol, GL_CONSTANT_ALPHA,ConstAlpha, GL_ONE_MINUS_CONSTANT_ALPHA,OMConstAlpha], -join=>1)
  Int_t		mBDstFac;     // X{GS}  7 PhonyEnum(-width=>10, -vals=>[GL_ZERO,Zero, GL_ONE,One, GL_SRC_COLOR,SrcColor, GL_ONE_MINUS_SRC_COLOR,OMSrcColor, GL_SRC_ALPHA,SrcAlpha, GL_ONE_MINUS_SRC_ALPHA,OMSrcAlpha, GL_DST_ALPHA,DstAplha, GL_ONE_MINUS_DST_ALPHA,OMDstAlpha, GL_CONSTANT_COLOR,ConstColor, GL_ONE_MINUS_CONSTANT_COLOR,OMConstCol, GL_CONSTANT_ALPHA,ConstAlpha, GL_ONE_MINUS_CONSTANT_ALPHA,OMConstAlpha])
  Int_t		mBEquation;   // X{GS}  7 PhonyEnum(-width=>10, -vals=>[GL_FUNC_ADD,Add, GL_FUNC_SUBTRACT,Sub, GL_FUNC_REVERSE_SUBTRACT,ReverseSub, GL_MIN,Min, GL_MAX,Max], -join=>1)
  ZColor	mBConstCol;   // X{PGS} 7 ColorButt()

  // Antialiasing points, lines
  ZRnrModBase::Operation_e
                mAntiAliasOp; // X{GS}  7 PhonyEnum()
  Bool_t	bPointSmooth; // X{GS}  7 Bool(-join=>1)
  Float_t	mPointSize;   // X{GS}  7 Value(-width=>5, -range=>[0.01,64,1,100], -join=>1)
  Int_t		mPointHint;   // X{GS}  7 PhonyEnum(-width=>6, -vals=>[GL_NICEST,Nicest, GL_FASTEST,Fastest, GL_DONT_CARE,DontCare])
  Bool_t	bLineSmooth;  // X{GS}  7 Bool(-join=>1)
  Float_t	mLineWidth;   // X{GS}  7 Value(-width=>4, -range=>[0.01,128,1,100], -join=>1)
  Int_t		mLineHint;    // X{GS}  7 PhonyEnum(-width=>6, -vals=>[GL_NICEST,Nicest, GL_FASTEST,Fastest, GL_DONT_CARE,DontCare])

  // Fog
  ZRnrModBase::Operation_e
                mFogOp;       // X{GS}  7 PhonyEnum()
  Int_t		mFogMode;     // X{GS}  7 PhonyEnum(-width=>6, -vals=>[GL_EXP,Exp, GL_EXP2,Exp2, GL_LINEAR,Linear], -join=>1)
  Int_t		mFogHint;     // X{GS}  7 PhonyEnum(-width=>6, -vals=>[GL_NICEST,Nicest, GL_FASTEST,Fastest, GL_DONT_CARE,DontCare])
  ZColor	mFogColor;    // X{PGS} 7 ColorButt(-join=>1)
  Float_t	mFogDensity;  // X{GS}  7 Value(-range=>[0,1000,1,1000])
  Float_t	mFogBeg;      // X{GS}  7 Value(-range=>[-1000,1000,1,100], -join=>1)
  Float_t	mFogEnd;      // X{GS}  7 Value(-range=>[-1000,1000,1,100])

  // Depth-buffer
  // Missing support for glDepthRange
  ZRnrModBase::Operation_e
                mDepthOp;     // X{GS}  7 PhonyEnum()
  Int_t         mDepthFunc;   // X{GS}  7 PhonyEnum(-vals=>[GL_NEVER,Never, GL_LESS,Less, GL_EQUAL,Equal, GL_LEQUAL,LessEqual, GL_GREATER,Greater, GL_NOTEQUAL,NotEqual, GL_GEQUAL,GreaterEqual, GL_ALWAYS,Always]);
  ZRnrModBase::Operation_e
                mDepthMaskOp; // X{GS}  7 PhonyEnum()
public:
  ZGlBlending(const Text_t* n="ZGlBlending", const Text_t* t=0) : ZRnrModBase(n,t) { _init(); }


#include "ZGlBlending.h7"
  ClassDef(ZGlBlending, 1); // Control of GL blending, anti-aliasing of points & lines and fog
}; // endclass ZGlBlending


#endif
 ZGlBlending.h:1
 ZGlBlending.h:2
 ZGlBlending.h:3
 ZGlBlending.h:4
 ZGlBlending.h:5
 ZGlBlending.h:6
 ZGlBlending.h:7
 ZGlBlending.h:8
 ZGlBlending.h:9
 ZGlBlending.h:10
 ZGlBlending.h:11
 ZGlBlending.h:12
 ZGlBlending.h:13
 ZGlBlending.h:14
 ZGlBlending.h:15
 ZGlBlending.h:16
 ZGlBlending.h:17
 ZGlBlending.h:18
 ZGlBlending.h:19
 ZGlBlending.h:20
 ZGlBlending.h:21
 ZGlBlending.h:22
 ZGlBlending.h:23
 ZGlBlending.h:24
 ZGlBlending.h:25
 ZGlBlending.h:26
 ZGlBlending.h:27
 ZGlBlending.h:28
 ZGlBlending.h:29
 ZGlBlending.h:30
 ZGlBlending.h:31
 ZGlBlending.h:32
 ZGlBlending.h:33
 ZGlBlending.h:34
 ZGlBlending.h:35
 ZGlBlending.h:36
 ZGlBlending.h:37
 ZGlBlending.h:38
 ZGlBlending.h:39
 ZGlBlending.h:40
 ZGlBlending.h:41
 ZGlBlending.h:42
 ZGlBlending.h:43
 ZGlBlending.h:44
 ZGlBlending.h:45
 ZGlBlending.h:46
 ZGlBlending.h:47
 ZGlBlending.h:48
 ZGlBlending.h:49
 ZGlBlending.h:50
 ZGlBlending.h:51
 ZGlBlending.h:52
 ZGlBlending.h:53
 ZGlBlending.h:54
 ZGlBlending.h:55
 ZGlBlending.h:56
 ZGlBlending.h:57
 ZGlBlending.h:58
 ZGlBlending.h:59
 ZGlBlending.h:60
 ZGlBlending.h:61
 ZGlBlending.h:62
 ZGlBlending.h:63
 ZGlBlending.h:64
 ZGlBlending.h:65
 ZGlBlending.h:66
 ZGlBlending.h:67
 ZGlBlending.h:68