39#include <qapplication.h>
40#include <qtabwidget.h>
42#ifdef G4OPENGL_VERSION_2
43#include <qglshaderprogram.h>
50 G4VViewer (sceneHandler, sceneHandler.IncrementViewCount (), name),
57 setFocusPolicy(Qt::StrongFocus);
63#ifdef G4OPENGL_VERSION_2
64 setVboDrawer(
new G4OpenGLVboDrawer(
this,
"OGL-VBO"));
82 glDrawBuffer (GL_BACK);
85 if (QGLWidget::parentWidget()) {
86 QTabWidget *parentTab =
dynamic_cast<QTabWidget*
> (QGLWidget::parentWidget()->parent()) ;
88 parentTab->setCurrentIndex(parentTab->count()-1);
97#ifndef G4OPENGL_VERSION_2
100 QGLShaderProgram *aQGLShaderProgram =
new QGLShaderProgram (context());
101 fShaderProgram = aQGLShaderProgram->programId ();
103 aQGLShaderProgram->addShaderFromSourceCode(QGLShader::Vertex,
104 fVboDrawer->getVertexShaderSrc());
106 aQGLShaderProgram->addShaderFromSourceCode(QGLShader::Fragment,
107 fVboDrawer->getFragmentShaderSrc());
109 aQGLShaderProgram->link();
110 aQGLShaderProgram->bind();
112 fVertexPositionAttribute = glGetAttribLocation(fShaderProgram,
"aVertexPosition");
113 fcMatrixUniform = glGetUniformLocation(fShaderProgram,
"uCMatrix");
114 fpMatrixUniform = glGetUniformLocation(fShaderProgram,
"uPMatrix");
115 ftMatrixUniform = glGetUniformLocation(fShaderProgram,
"uTMatrix");
116 fmvMatrixUniform = glGetUniformLocation(fShaderProgram,
"uMVMatrix");
119 float identity[16] = {
125 glUniformMatrix4fv (fcMatrixUniform, 1, 0, identity);
126 glUniformMatrix4fv (fpMatrixUniform, 1, 0, identity);
127 glUniformMatrix4fv (ftMatrixUniform, 1, 0, identity);
128 glUniformMatrix4fv(fmvMatrixUniform, 1, 0, identity);
130 glUseProgram(fShaderProgram);
155#ifdef G4MULTITHREADED
165void G4OpenGLImmediateQtViewer::ComputeView () {
202 if ((aWidth > 0) && (aHeight > 0)) {
230 if (!isMaximized() && !isFullScreen()) {
231 sw = normalGeometry().width();
232 sh = normalGeometry().height();
234 sw = frameGeometry().width();
235 sh = frameGeometry().height();
240 }
else if ((sw == 0) && (sh == 0)) {
void G4MouseReleaseEvent(QMouseEvent *evnt)
void G4MouseMoveEvent(QMouseEvent *event)
void G4keyPressEvent(QKeyEvent *event)
void updateViewerPropertiesTableWidget()
void G4MousePressEvent(QMouseEvent *event)
void G4wheelEvent(QWheelEvent *event)
void G4MouseDoubleClickEvent()
void updateSceneTreeWidget()
void G4manageContextMenuEvent(QContextMenuEvent *e)
bool fQGLWidgetInitialiseCompleted
void updateToolbarAndMouseContextMenu()
void G4keyReleaseEvent(QKeyEvent *event)
virtual void CreateMainWindow(QGLWidget *, const QString &)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
bool setExportImageFormat(std::string format, bool quiet=false)
unsigned int getWinHeight() const
void ResizeWindow(unsigned int, unsigned int)
unsigned int getWinWidth() const
G4bool isFramebufferReady()
G4Scene * GetScene() const
const G4String & GetName() const
const G4ViewParameters & GetViewParameters() const
G4VSceneHandler & fSceneHandler
DrawingStyle GetDrawingStyle() const