ROOT logo

From $ROOTSYS/tutorials/gl/transp.C

//Author: Timur Pocheptsov, 19/03/2014

//Includes for ACLiC.
#include "TCanvas.h"
#include "TStyle.h"
#include "TColor.h"
#include "TError.h"
#include "TH1F.h"

//Aux. functions.
#include "customcolors.h"

void transp()
{
   //This demo shows, how to use transparency with gl-pad.
   //To enable OpenGL you can either call gStyle->SetCanvasPreferGL(kTRUE)
   //or set OpenGL.CanvasPreferGL to 1 in a $ROOTSYS/etc/system.rootrc.

   Color_t idx[2] = {};
   if (FindFreeCustomColorIndices(2, idx) != 2) {
      ::Error("transp", "failed to allocate custom colors");
      return;
   }

   gStyle->SetCanvasPreferGL(kTRUE);

   TCanvas * const cnv = new TCanvas("trasnparency", "transparency demo", 600, 400);
   if (!cnv->UseGL()) {
      ::Error("transp", "this macro requires OpenGL");
      delete cnv;
      return;
   }
   
   TH1F * const hist = new TH1F("a", "b", 10, -2., 3.);
   TH1F * const hist2 = new TH1F("c", "d", 10, -3., 3.);
   hist->FillRandom("landau", 100000);
   hist2->FillRandom("gaus", 100000);

   //Add new color with index 1001.
   new TColor(idx[0], 1., 0., 0., "red", 0.85);
   hist->SetFillColor(idx[0]);
   
   //Add new color with index 1002.
   new TColor(idx[1], 0., 1., 0., "green", 0.5);
   hist2->SetFillColor(idx[1]);
   
   cnv->cd();
   hist2->Draw();
   hist->Draw("SAME");
}
 transp.C:1
 transp.C:2
 transp.C:3
 transp.C:4
 transp.C:5
 transp.C:6
 transp.C:7
 transp.C:8
 transp.C:9
 transp.C:10
 transp.C:11
 transp.C:12
 transp.C:13
 transp.C:14
 transp.C:15
 transp.C:16
 transp.C:17
 transp.C:18
 transp.C:19
 transp.C:20
 transp.C:21
 transp.C:22
 transp.C:23
 transp.C:24
 transp.C:25
 transp.C:26
 transp.C:27
 transp.C:28
 transp.C:29
 transp.C:30
 transp.C:31
 transp.C:32
 transp.C:33
 transp.C:34
 transp.C:35
 transp.C:36
 transp.C:37
 transp.C:38
 transp.C:39
 transp.C:40
 transp.C:41
 transp.C:42
 transp.C:43
 transp.C:44
 transp.C:45
 transp.C:46
 transp.C:47
 transp.C:48
 transp.C:49
 transp.C:50
 transp.C:51