/usr/include/root/TGLWidget.h is in libroot-graf3d-gl-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | // @(#)root/gl:$Id$
// Author: Timur Pocheptsov, Jun 2007
/*************************************************************************
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGLWidget
#define ROOT_TGLWidget
#include <utility>
#include <memory>
#include <set>
#ifndef ROOT_TGLContext
#include "TGLContext.h"
#endif
#ifndef ROOT_TVirtualGL
#include "TVirtualGL.h"
#endif
#ifndef ROOT_TGLFormat
#include "TGLFormat.h"
#endif
#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif
class TGLWidget;
class TGEventHandler;
class TGLWidget : public TGFrame, public TGLPaintDevice
{
friend class TGLContext;
private:
TGLContext *fGLContext;
//fInnerData is for X11 - <dpy, visualInfo> pair.
std::pair<void *, void *> fInnerData;
Int_t fWindowIndex;
TGLFormat fGLFormat;
//fFromCtor checks that SetFormat was called only from ctor.
Bool_t fFromInit;
std::set<TGLContext *> fValidContexts;
TGEventHandler *fEventHandler;
public:
static TGLWidget* CreateDummy();
static TGLWidget* Create(const TGWindow* parent, Bool_t selectInput,
Bool_t shareDefault, const TGLPaintDevice *shareDevice,
UInt_t width, UInt_t height);
static TGLWidget* Create(const TGLFormat &format,
const TGWindow* parent, Bool_t selectInput,
Bool_t shareDefault, const TGLPaintDevice *shareDevice,
UInt_t width, UInt_t height);
~TGLWidget();
virtual void InitGL();
virtual void PaintGL();
Bool_t MakeCurrent();
Bool_t ClearCurrent();
void SwapBuffers();
const TGLContext *GetContext()const;
const TGLFormat *GetPixelFormat()const;
//This function is public _ONLY_ for calls
//via gInterpreter. Do not call it directly.
void SetFormat();
//To repaint gl-widget without GUI events.
void ExtractViewport(Int_t *vp)const;
TGEventHandler *GetEventHandler() const { return fEventHandler; }
void SetEventHandler(TGEventHandler *eh);
Bool_t HandleButton(Event_t *ev);
Bool_t HandleDoubleClick(Event_t *ev);
Bool_t HandleConfigureNotify(Event_t *ev);
Bool_t HandleKey(Event_t *ev);
Bool_t HandleMotion(Event_t *ev);
Bool_t HandleFocusChange(Event_t *);
Bool_t HandleCrossing(Event_t *);
void DoRedraw();
private:
TGLWidget(const TGLWidget &); // Not implemented.
TGLWidget &operator = (const TGLWidget &); // Not implemented.
protected:
TGLWidget(Window_t glw, const TGWindow* parent, Bool_t selectInput);
static Window_t CreateWindow(const TGWindow* parent, const TGLFormat &format,
UInt_t width, UInt_t height,
std::pair<void *, void *>& innerData);
void AddContext(TGLContext *ctx);
void RemoveContext(TGLContext *ctx);
std::pair<void *, void *> GetInnerData()const;
ClassDef(TGLWidget, 0); //Window (widget) version of TGLPaintDevice
};
#endif
|