Logo ROOT  
Reference Guide
games.C File Reference

Detailed Description

This macro runs three "games" that each nicely illustrate the graphics capabilities of ROOT. Thanks to the clever usage of TTimer objects it looks like they are all executing in parallel (emulation of multi-threading). It uses the small classes generated in $ROOTSYS/test/Hello, Aclock, Tetris

#ifndef __RUN_GAMES__
void games()
{
gSystem->Load("libGui");
Bool_t UNIX = strcmp(gSystem->GetName(), "Unix") == 0;
Int_t st1 = gSystem->Load("$(ROOTSYS)/test/Aclock");
if (st1 == -1) {
printf("===>The macro games will try to build the Aclock library\n");
if (UNIX)
gSystem->Exec("(cd $ROOTSYS/test; make Aclock)");
else
gSystem->Exec("(cd %ROOTSYS%\\test && nmake -f Makefile.win32 Aclock.dll)");
st1 = gSystem->Load("$(ROOTSYS)/test/Aclock");
}
Int_t st2 = gSystem->Load("$(ROOTSYS)/test/Hello");
if (st2 == -1) {
printf("===>The macro games will try to build the Hello library\n");
if (UNIX)
gSystem->Exec("(cd $ROOTSYS/test; make Hello)");
else
gSystem->Exec("(cd %ROOTSYS%\\test && nmake -f Makefile.win32 Hello.dll)");
st2 = gSystem->Load("$(ROOTSYS)/test/Hello");
}
Int_t st3 = gSystem->Load("$(ROOTSYS)/test/Tetris");
if (st3 == -1) {
if (UNIX) {
printf("===>The macro games will try to build the Tetris library\n");
gSystem->Exec("(cd $ROOTSYS/test; make Tetris)");
} else {
gSystem->Exec("(cd %ROOTSYS%\\test && nmake -f Makefile.win32 Tetris.dll)");
}
st3 = gSystem->Load("$(ROOTSYS)/test/Tetris");
}
if (st1 || st2 || st3) {
printf("ERROR: one of the shared libs in $ROOTSYS/test didn't load properly\n");
return;
}
gROOT->ProcessLine("#define __RUN_GAMES__ 1");
gROOT->ProcessLine("#include \"games.C\"");
gROOT->ProcessLine("rungames()");
gROOT->ProcessLine("#undef __RUN_GAMES__");
}
#else
class Hello;
class Aclock;
class Tetris;
void rungames()
{
// run the dancing Hello World
Hello *hello = new Hello();
// run the analog clock
Aclock *clock = new Aclock();
// run the Tetris game
Tetris *tetris = new Tetris();
}
#endif
Author
Valeriy Onuchin

Definition in file games.C.

Int_t
int Int_t
Definition: RtypesCore.h:45
TSystem::Load
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
Definition: TSystem.cxx:1852
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
TSystem::Exec
virtual Int_t Exec(const char *shellcmd)
Execute a command.
Definition: TSystem.cxx:654
gSystem
R__EXTERN TSystem * gSystem
Definition: TSystem.h:559
TNamed::GetName
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:53
hello
std::string hello(std::string who, std::string msg)
Definition: FunModule.C:5
gROOT
#define gROOT
Definition: TROOT.h:406