def __init__ (self, parent = None): ''' Viewer's Constructor ''' frmt = QGLFormat () frmt.setSampleBuffers (True) super (OGLViewer, self).__init__ (frmt, parent) #self.setMouseTracking (True) self.__mouse = QCursor () self.setCursor (Qt.OpenHandCursor) self.setFocusPolicy (Qt.ClickFocus) self.__Ctrl_or_Meta_key_pressed = False self.__Alt_key_pressed = False self.__w = 720 self.__h = 450 self._init_camera_vars () self._init_objec_vars () # matrix changed signal. The signal's payload is the matrix itself. self.__GLMatrixChanged = SIGNAL ("MatrixChanged (PyQt_PyObject)") self.__compo_light_pos = QVector3D (.3,.2,.1) self.__AmbientMaterial = QVector3D ( .2, .2, .2)
def __init__(self, parent, enableUi,File=""): f = QGLFormat() f.setStencil(True) f.setRgba(True) f.setDepth(True) f.setDoubleBuffer(True) QGLWidget.__init__(self, f, parent=parent) self.setMinimumSize(500, 500) self._enableUi=enableUi self.pymol = pymol2.PyMOL()# _pymolPool.getInstance() self.pymol.start() self.cmd = self.pymol.cmd # self.toPymolName = self.pymol.toPymolName ### Attribute Error self._pymolProcess() if not self._enableUi: self.pymol.cmd.set("internal_gui",0) self.pymol.cmd.set("internal_feedback",0) self.pymol.cmd.button("double_left","None","None") self.pymol.cmd.button("single_right","None","None") self.pymol.cmd.load(File) self.pymol.reshape(self.width(),self.height()) self._timer = QtCore.QTimer() self._timer.setSingleShot(True) self._timer.timeout.connect(self._pymolProcess) self.resizeGL(self.width(),self.height()) #globalSettings.settingsChanged.connect(self._updateGlobalSettings) self._updateGlobalSettings()
def __init__(self): # init the widget #QWidget.__init__(self, parent) # set up the scene self.scene=QGraphicsScene() self.scene.setSceneRect(0,0,800,600) # add a view of that scene self.view = QGraphicsView() self.view.setScene(self.scene) self.view.setRenderHint(QPainter.Antialiasing) self.view.setFixedSize(800,600) self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # set the screen sync to vertical retrace val = "1" # Set for nVidia linux os.environ["__GL_SYNC_TO_VBLANK"] = val # Set for recent linux Mesa DRI Radeon os.environ["LIBGL_SYNC_REFRESH"] = val qglf = QGLFormat() qglf.setSampleBuffers(True) self.glw = QGLWidget(qglf) self.glw.setAutoBufferSwap(False) self.view.setViewport(self.glw) #self.view.showFullScreen() self.view.show() self.last_finish = 0 QTimer.singleShot(0,self.glw.swapBuffers)
def __init__(self, parent=None): ''' Viewer's Constructor ''' frmt = QGLFormat() frmt.setSampleBuffers(True) super(OGLViewer, self).__init__(frmt, parent) #self.setMouseTracking (True) self.__mouse = QCursor() self.setCursor(Qt.OpenHandCursor) self.setFocusPolicy(Qt.ClickFocus) self.__Ctrl_or_Meta_key_pressed = False self.__Alt_key_pressed = False self.__w = 720 self.__h = 450 self._init_camera_vars() self._init_objec_vars() # matrix changed signal. The signal's payload is the matrix itself. self.__GLMatrixChanged = SIGNAL("MatrixChanged (PyQt_PyObject)") self.__compo_light_pos = QVector3D(.3, .2, .1) self.__AmbientMaterial = QVector3D(.2, .2, .2)
def __init__(self): # init the widget #QWidget.__init__(self, parent) # set up the scene self.scene = QGraphicsScene() self.scene.setSceneRect(0, 0, 800, 600) # add a view of that scene self.view = QGraphicsView() self.view.setScene(self.scene) self.view.setRenderHint(QPainter.Antialiasing) self.view.setFixedSize(800, 600) self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # set the screen sync to vertical retrace val = "1" # Set for nVidia linux os.environ["__GL_SYNC_TO_VBLANK"] = val # Set for recent linux Mesa DRI Radeon os.environ["LIBGL_SYNC_REFRESH"] = val qglf = QGLFormat() qglf.setSampleBuffers(True) self.glw = QGLWidget(qglf) self.glw.setAutoBufferSwap(False) self.view.setViewport(self.glw) #self.view.showFullScreen() self.view.show() self.last_finish = 0 QTimer.singleShot(0, self.glw.swapBuffers)
def __init__(self): super(MainWindow, self).__init__() with open('primitives.glslf', 'r') as f: self.src_primitives = f.read() with open('sdRayMarchRenderer.glslf', 'r') as f: self.src_renderer = f.read() w = QtGui.QFont() self.font = w w.setFamily('Lucida') w.setFixedPitch(True) w.setPointSize(10) l0 = QtGui.QHBoxLayout() self.setLayout(l0) qgl_format = QGLFormat() qgl_format.setSwapInterval(1) w = GLPlotWidget(qgl_format) self.glview = w l0.addWidget(self.glview) w.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) l1 = QtGui.QVBoxLayout() l0.addLayout(l1) w = QtGui.QTextEdit(self) self.txtCode = w l1.addWidget(w) w.setFont(self.font) w.setLineWrapMode(QtGui.QTextEdit.NoWrap) l2 = QtGui.QHBoxLayout() l1.addLayout(l2) w = QtGui.QPushButton('update', self) self.btShUpdate = w l2.addWidget(w) w.setToolTip('update shader from code') w.clicked.connect(self.updateShader) w = QtGui.QPushButton('save', self) self.btShSave = w l2.addWidget(w) w.setToolTip('save shader from code') w.clicked.connect(self.saveShaderDlg) w = QtGui.QPushButton('load', self) self.btShLoad = w l2.addWidget(w) w.setToolTip('load shader from code') w.clicked.connect(self.loadShaderDlg) w = QtGui.QPushButton('play', self) self.btPlay = w l2.addWidget(w) w.setToolTip('on/off update on timer') w.clicked.connect(self.play) self.txtCode.setPlainText( "d = opU( sdPlane(pos), sdSphere(pos-vec3( 0.0,0.25, 0.0), 0.25 ) );" ) self.makeShaderCode()
def __init__(self): super(MainWindow, self).__init__() qgl_format = QGLFormat() qgl_format.setSwapInterval(1) w = QtGui.QFont() self.font = w w.setFamily('Lucida') w.setFixedPitch(True) w.setPointSize(10) l0 = QtGui.QHBoxLayout() self.setLayout(l0) w = GLPlotWidget(qgl_format) self.glview = w l0.addWidget(self.glview) w.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) l1 = QtGui.QVBoxLayout() l0.addLayout(l1) w = QtGui.QTextEdit(self) self.txtCode = w l1.addWidget(w) w.setFont(self.font) w.setLineWrapMode(QtGui.QTextEdit.NoWrap) l2 = QtGui.QHBoxLayout() l1.addLayout(l2) w = QtGui.QPushButton('play', self) self.btPlay = w l2.addWidget(w) w.setToolTip('on/off update on timer') w.clicked.connect(self.play) w = QtGui.QPushButton('update', self) self.btShUpdate = w l2.addWidget(w) w.setToolTip('update shader from code') w.clicked.connect(self.updateShader) w = QtGui.QPushButton('save', self) self.btShSave = w l2.addWidget(w) w.setToolTip('save shader from code') w.clicked.connect(self.saveShaderDlg) w = QtGui.QPushButton('load', self) self.btShLoad = w l2.addWidget(w) w.setToolTip('load shader from code') w.clicked.connect(self.loadShaderDlg) w = QtGui.QLineEdit() self.bxShToy = w l2.addWidget(w) w.returnPressed.connect(self.downloadShaderEvent) #l3 = QtGui.QHBoxLayout(); l1.addLayout(l3) #w = QtGui.QLineEdit(); #w = QtGui.QPushButton('fromShadeToy',self); self.btSave = w; l2.addWidget(w); w.setToolTip('load shader from code'); w.clicked.connect(self.loadShaderDlg); #self.loadShaderToy ("Torus_intersection.glslf") self.loadShader("Torus_intersection.glslf")
def changeRendering(self): if parameters.instance.use_OpenGL: self.ui.previousData.setViewport( QGLWidget(QGLFormat(QGL.SampleBuffers))) self.ui.currentData.setViewport( QGLWidget(QGLFormat(QGL.SampleBuffers))) else: self.ui.previousData.setViewport(QWidget()) self.ui.currentData.setViewport(QWidget())
def __init__(self, parent = None): if hasattr(QGLFormat, 'setVersion'): # Modern OpenGL f = QGLFormat() f.setVersion(3, 3) f.setProfile(QGLFormat.CoreProfile) c = QGLContext(f, None) QGLWidget.__init__(self, c, parent) print "Version is set to 3.3" else: QGLWidget.__init__(self, parent)
def __resize(self, roundupImageSize): # QGLPixelBuffer size must be power of 2 assert roundupImageSize == roundUpSize(roundupImageSize) # force alpha format, it should be the default, # but isn't all the time (uninitialized) fmt = QGLFormat() fmt.setAlpha(True) self.__pixBuf = QGLPixelBuffer(roundupImageSize, fmt) assert self.__pixBuf.format().alpha() self.__pixBuf.makeCurrent() self.__pixBuf.bindToDynamicTexture(self.__pixBuf.generateDynamicTexture()) self.__compileShaders() self.__pixBuf.doneCurrent()
def __init__(self, scene, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) # self.windowTitleChanged.connect(self.onWindowTitleChange) self.setWindowTitle("timeline0") toolbar = QToolBar("och") toolbar.setIconSize(QSize(20, 20)) self.addToolBar(toolbar) button_action = QAction(QIcon("balance.png"), "ochtuse", self) button_action.setStatusTip("och, just do something") button_action.triggered.connect(self.onMyToolBarButtonClick) button_action.setCheckable(True) # button_action.setShortcut(QKeySequence("Ctrl+p")) # button_action.setShortcut(QKeySequence(Qt.CTRL + Qt.Key_P)) button_action.setShortcut(QKeySequence.Print) toolbar.addAction(button_action) toolbar.addWidget(QLabel("OCH")) toolbar.addWidget(QCheckBox()) self.setStatusBar(QStatusBar(self)) menu = self.menuBar() file_menu = menu.addMenu("&File") file_menu.addAction(button_action) file_menu.addSeparator() file_menu.addMenu("Do not push") # file_menu.addAction() self._scene = scene gfx = self._gfx = QGraphicsView(self) # label = QLabel("och!") # label.setAlignment(Qt.AlignCenter) # ref https://doc.qt.io/archives/qq/qq26-openglcanvas.html self.setCentralWidget(gfx) fmt = QGLFormat(QGL.SampleBuffers) wdgt = QGLWidget(fmt) assert (wdgt.isValid()) gfx.setViewport(wdgt) gfx.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) gfx.setScene(scene) # populate fills the scene with interesting stuff. self.populate() # Make it bigger self.setWindowState(Qt.WindowMaximized) # Well... it's going to have an animation, ok? # So, I set a timer to 1 second self.animator = QTimer() # And when it triggers, it calls the animate method self.animator.timeout.connect(self.animate) # And I animate it once manually. self.animate()
def __resize(self, roundupImageSize): # QGLPixelBuffer size must be power of 2 assert roundupImageSize == roundUpSize(roundupImageSize) # force alpha format, it should be the default, # but isn't all the time (uninitialized) fmt = QGLFormat() fmt.setAlpha(True) self.__pixBuf = QGLPixelBuffer(roundupImageSize, fmt) assert self.__pixBuf.format().alpha() self.__pixBuf.makeCurrent() self.__pixBuf.bindToDynamicTexture( self.__pixBuf.generateDynamicTexture()) self.__compileShaders() self.__pixBuf.doneCurrent()
def __init__(self, thread, parent): QDialog.__init__(self, parent) self.ui = Ui_PlotPreview() self.ui.setupUi(self) self.parent = parent icon = QIcon() icon.addPixmap(QPixmap(":/icons/reload.png"), QIcon.Normal, QIcon.Off) self.update_btn = QPushButton(icon, "Update") self.ui.buttonBox.addButton(self.update_btn, QDialogButtonBox.ApplyRole) self.update_btn.clicked.connect(self.render_image) self._pix = None self._image_list = None self._thread = thread self.scene = QGraphicsScene() self.scene.setSceneRect(0,0,1,1) self.ui.imageView.setScene(self.scene) self.pix_item = None self.ui.imageView.setEnabled(False) self.ui.imageView.setInteractive(False) self.ui.imageView.setDragMode(QGraphicsView.ScrollHandDrag) self.pic_w = None self.pic_c = None self.show_pic_w = None self.show_pic_c = None timer = QTimer(self) timer.setSingleShot(True) timer.setInterval(500) self.timer = timer timer.timeout.connect(self.render_image) if parameters.instance.use_OpenGL: self.ui.imageView.setViewport(QGLWidget(QGLFormat(QGL.SampleBuffers)))
def checkGL(self): gl_support = True if not sys.platform.startswith("linux"): #causes a segmetnation fault if not QGLFormat.hasOpenGL(): gl_support = False return gl_support
def checkGL(self): gl_support = True if not sys.platform.startswith("linux"): #causes a segmetnation fault if not QGLFormat.hasOpenGL(): gl_support=False return gl_support
def _init_specific(self, vsync, dec, fs, parent, context, kwargs): # Deal with context if not context.istaken: widget = kwargs.pop('shareWidget', None) or self context.take('qt', widget) glformat = _set_config(context.config) glformat.setSwapInterval(1 if vsync else 0) if widget is self: widget = None # QGLWidget does not accept self ;) elif context.istaken == 'qt': widget = context.backend_canvas glformat = QGLFormat.defaultFormat() if 'shareWidget' in kwargs: raise RuntimeError('Cannot use vispy to share context and ' 'use built-in shareWidget.') else: raise RuntimeError('Different backends cannot share a context.') # first arg can be glformat, or a gl context f = QtCore.Qt.Widget if dec else QtCore.Qt.FramelessWindowHint QGLWidget.__init__(self, glformat, parent, widget, f) self._initialized = True if not self.isValid(): raise RuntimeError('context could not be created') self.setAutoBufferSwap(False) # to make consistent with other backends
def init(self): """Initialize GL context.""" if not self.glcontext: self.glformat = QGLFormat() self.glcontext = self.widget.context() self.glcontext.setFormat(self.glformat) self.glcontext.create() return M64ERR_SUCCESS
def __init__(self, parent, shareWidget, useStencilBuffer): """ If shareWidget is specified, useStencilBuffer is ignored: set it in the widget you're sharing with. """ if shareWidget: self.shareWidget = shareWidget #bruce 051212 glformat = shareWidget.format() QGLWidget.__init__(self, glformat, parent, shareWidget) if not self.isSharing(): print "Request of display list sharing is failed." return else: glformat = QGLFormat() if (useStencilBuffer): glformat.setStencil(True) # set gl format to request stencil buffer # (needed for mouseover-highlighting of objects of general # shape in depositMode.bareMotion) [bruce 050610] QGLWidget.__init__(self, glformat, parent) # Current view attributes (sometimes saved in or loaded from # the currently displayed part or its mmp file): # rotation self.quat = Q(1, 0, 0, 0) # point of view (i.e. negative of center of view) self.pov = V(0.0, 0.0, 0.0) # half-height of window in Angstroms (reset by certain view-changing operations) self.scale = float(env.prefs[startup_GLPane_scale_prefs_key]) # zoom factor self.zoomFactor = 1.0 self.trackball = Trackball(10, 10) self._functions_to_call_when_gl_context_is_current = [] # piotr 080714: Defined this attribute here in case # chunk.py accesses it in ThumbView. self.lastNonReducedDisplayMode = default_display_mode return
def __init__(self, parent, shareWidget, useStencilBuffer): """ If shareWidget is specified, useStencilBuffer is ignored: set it in the widget you're sharing with. """ if shareWidget: self.shareWidget = shareWidget # bruce 051212 glformat = shareWidget.format() QGLWidget.__init__(self, glformat, parent, shareWidget) if not self.isSharing(): print "Request of display list sharing is failed." return else: glformat = QGLFormat() if useStencilBuffer: glformat.setStencil(True) # set gl format to request stencil buffer # (needed for mouseover-highlighting of objects of general # shape in depositMode.bareMotion) [bruce 050610] QGLWidget.__init__(self, glformat, parent) # Current view attributes (sometimes saved in or loaded from # the currently displayed part or its mmp file): # rotation self.quat = Q(1, 0, 0, 0) # point of view (i.e. negative of center of view) self.pov = V(0.0, 0.0, 0.0) # half-height of window in Angstroms (reset by certain view-changing operations) self.scale = float(env.prefs[startup_GLPane_scale_prefs_key]) # zoom factor self.zoomFactor = 1.0 self.trackball = Trackball(10, 10) self._functions_to_call_when_gl_context_is_current = [] # piotr 080714: Defined this attribute here in case # chunk.py accesses it in ThumbView. self.lastNonReducedDisplayMode = default_display_mode return
def __init__(self, *args, **kwargs): super(QFramesInTracksView, self).__init__(*args, **kwargs) fmt = QGLFormat(QGL.SampleBuffers) wdgt = QGLWidget(fmt) assert (wdgt.isValid()) self.setViewport(wdgt) self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.setRenderHints(QPainter.Antialiasing)
def __init__(self, renderer, scene, title): QApplication.__init__(self, sys.argv) self.window = QMainWindow() self.window.setWindowTitle(title) self.window.resize(800, 600) # Get OpenGL 4.1 context glformat = QGLFormat() glformat.setVersion(4, 1) glformat.setProfile(QGLFormat.CoreProfile) glformat.setDoubleBuffer(False) self.glwidget = MyGlWidget(renderer, glformat, self, scene) self.window.setCentralWidget(self.glwidget) self.window.show()
def __init__( self, vertexes, colors, parent=None, **kw ): #vertexes, colors, texturePath='graphics/Texture-Example.jpg', parent=None):#spl, peak=None, parent=None): """ Constructor, initialization kw: -texturePath:pathway to the file to text -textures: coord textures to apply -parent:the parent widget """ QGLWidget.__init__(self, parent) self.setFormat(QGLFormat(QGL.SampleBuffers)) self.setMinimumSize(500, 300) self.setMouseTracking(True) self.setFocusPolicy(Qt.StrongFocus) # if not 'texturePath'in kw.keys() and not 'textures' in kw.keys(): # pass # #print ('Could not apply texture, no coordinates') # else: # try: # self._imageID = self.loadImage(kw.get('texturePath')) # self.textures = textures # except OSError: # print ('Could not apply texture, no coordinates') self.vertexes = vertexes self.colors = colors #self.axes=None self.zoom_mode = False self.pan_mode = True #self.axes = self.makeAxes() self.parameters = { 'axes_color': 'b', 'axes_line_width': 3., 'draw_line_width': 1., 'colormap': True, 'fish_eye': False, 'cell_shading': False } self.lastpos = QPoint()
def __init__(self, data, parent=None, **kw): """ Constructor, initialization """ QGLWidget.__init__(self, parent) self.setFormat(QGLFormat(QGL.SampleBuffers)) self.setMinimumSize(500, 300) #300 self.setMouseTracking(True) self.setFocusPolicy(Qt.StrongFocus) self.data = data vertexes = [] colors = [] from utils.misc import IceAndFire maxY = max(map(max, [log10(el.y_data) for el in data])) maxX = max(map(max, [el.x_data for el in data])) rtmax = max([z.rtmin for z in data]) for el in data: for i, x in enumerate(el.x_data): c = IceAndFire.getQColor(log10(el.y_data[i]) / maxY) colors.append(c) vertexes.append([(x * 2 * self.corner_) / maxX, (el.rt * 2 * self.corner_) / rtmax]) from OpenGL.arrays.vbo import VBO self.vertexes = VBO(array(vertexes, 'f')) self.colors = VBO(array(colors, 'f')) self.mode = "None" # "ZOOMING", "PANNING", "NONE" self.lastpos = QPoint() self.counter_trans_x = 0 self.counter_trans_y = 0 self.defaultColors = { 'ticks': (0., 0., 0., 0.), 'axes': (0., 0., 0., 0.), 'curves': (0., 0., 1., 0.), 'backgroundColor': (1., 1., 1., 1.) } #self.axes=self.drawAxes() self.transformationMatrix = self.setupTransformationMatrix( self.width(), self.height())
def __init__(self, parent=None): """ On initialization, we need to bind the Ctrl/command key to enable manipulation of the view. """ QGraphicsView.__init__(self, parent) self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse) self.setRubberBandSelectionMode(Qt.IntersectsItemShape) self.setStyleSheet( "QGraphicsView { background-color: rgb(96.5%, 96.5%, 96.5%); }") self._noDrag = QGraphicsView.RubberBandDrag self._yesDrag = QGraphicsView.ScrollHandDrag # reset things that are state dependent self.clearGraphicsView() self._x0 = 0 self._y0 = 0 self._scale_size = 1.0 self._scale_limit_max = 3.0 self._scale_limit_min = 0.41 self._scaleUpRate = 0.01 self._scaleDownRate = 0.01 self._scaleFitFactor = 1 # sets initial zoom level self._showDetails = True self._last_scale_factor = 0.0 self.sceneRootItem = None # the item to transform # Keyboard panning self._key_pan_delta_x = styles.PATH_BASE_WIDTH * 21 self._key_pan_delta_y = styles.PATH_HELIX_HEIGHT + styles.PATH_HELIX_PADDING / 2 # Modifier keys and buttons self._key_mod = Qt.Key_Control self._button_pan = Qt.LeftButton self._button_pan_alt = Qt.MidButton self._button_zoom = Qt.RightButton self.toolbar = None # custom hack for the paint tool palette self._name = None if GL: self.setViewport(QGLWidget(QGLFormat(QGL.SampleBuffers))) self.setViewportUpdateMode(QGraphicsView.FullViewportUpdate) else: self.setViewportUpdateMode(QGraphicsView.MinimalViewportUpdate)
def __init__(self, parent=None): super(GLWidget, self).__init__(parent) fmt = QGLFormat() fmt.setSampleBuffers(True) fmt.setSamples(4) # print fmt.samples() # exit(0) self.setFormat(fmt) # Anti-aliasing self.width = 1280 self.height = 720 self.lastPos = None self.zoom = -1.2 self.sim = None self.viewer = None self.captureIndex = 0 self.scene = OpenGLScene(self.width, self.height, parent) self.renderer = self.scene.renderer self.lock_camera = False
def getGLFormat(): glformat = QGLFormat(QGL.SampleBuffers) glformat.setSamples(8) return glformat
def _set_config(c): """Set the OpenGL configuration""" glformat = QGLFormat() glformat.setRedBufferSize(c['red_size']) glformat.setGreenBufferSize(c['green_size']) glformat.setBlueBufferSize(c['blue_size']) glformat.setAlphaBufferSize(c['alpha_size']) glformat.setAccum(False) glformat.setRgba(True) glformat.setDoubleBuffer(True if c['double_buffer'] else False) glformat.setDepth(True if c['depth_size'] else False) glformat.setDepthBufferSize(c['depth_size'] if c['depth_size'] else 0) glformat.setStencil(True if c['stencil_size'] else False) glformat.setStencilBufferSize( c['stencil_size'] if c['stencil_size'] else 0) glformat.setSampleBuffers(True if c['samples'] else False) glformat.setSamples(c['samples'] if c['samples'] else 0) glformat.setStereo(c['stereo']) return glformat
def _set_config(c): """Set the OpenGL configuration""" glformat = QGLFormat() glformat.setRedBufferSize(c['red_size']) glformat.setGreenBufferSize(c['green_size']) glformat.setBlueBufferSize(c['blue_size']) glformat.setAlphaBufferSize(c['alpha_size']) if QT5_NEW_API: # Qt5 >= 5.4.0 - below options automatically enabled if nonzero. glformat.setSwapBehavior(glformat.DoubleBuffer if c['double_buffer'] else glformat.SingleBuffer) else: # Qt4 and Qt5 < 5.4.0 - buffers must be explicitly requested. glformat.setAccum(False) glformat.setRgba(True) glformat.setDoubleBuffer(True if c['double_buffer'] else False) glformat.setDepth(True if c['depth_size'] else False) glformat.setStencil(True if c['stencil_size'] else False) glformat.setSampleBuffers(True if c['samples'] else False) glformat.setDepthBufferSize(c['depth_size'] if c['depth_size'] else 0) glformat.setStencilBufferSize(c['stencil_size'] if c['stencil_size'] else 0) glformat.setSamples(c['samples'] if c['samples'] else 0) glformat.setStereo(c['stereo']) return glformat
def _set_config(c): """Set the OpenGL configuration""" glformat = QGLFormat() glformat.setRedBufferSize(c['red_size']) glformat.setGreenBufferSize(c['green_size']) glformat.setBlueBufferSize(c['blue_size']) glformat.setAlphaBufferSize(c['alpha_size']) glformat.setAccum(False) glformat.setRgba(True) glformat.setDoubleBuffer(True if c['double_buffer'] else False) glformat.setDepth(True if c['depth_size'] else False) glformat.setDepthBufferSize(c['depth_size'] if c['depth_size'] else 0) glformat.setStencil(True if c['stencil_size'] else False) glformat.setStencilBufferSize(c['stencil_size'] if c['stencil_size'] else 0) glformat.setSampleBuffers(True if c['samples'] else False) glformat.setSamples(c['samples'] if c['samples'] else 0) glformat.setStereo(c['stereo']) return glformat
for eleNum, elm in elemTable.items(): col = elm.color r = int(col[0] * 255 + 0.5) g = int(col[1] * 255 + 0.5) b = int(col[2] * 255 + 0.5) f.write( str(eleNum) + " " + str(r) + " " + str(g) + " " + str(b) + "\n") f.close() # == Test code import sys if __name__ == '__main__': QApplication.setColorSpec(QApplication.CustomColor) app = QApplication(sys.argv) if not QGLFormat.hasOpenGL(): raise Exception("No Qt OpenGL support.") w = elementColors(None) app.setMainWidget(w) w.resize(400, 350) w.show() w.setCaption('box') app.exec_()
def getGLFormat(): format = QGLFormat(QGL.SampleBuffers) format.setSamples(8) return format
def __init__(self, navdb): super(Gui, self).__init__([]) self.acdata = ACDataEvent() self.navdb = navdb self.radarwidget = [] self.command_history = [] self.cmdargs = [] self.history_pos = 0 self.command_mem = '' self.command_line = '' self.prev_cmdline = '' self.simevent_target = 0 self.mousepos = (0, 0) self.prevmousepos = (0, 0) self.panzoomchanged = False # Register our custom pan/zoom event for etype in [PanZoomEventType, ACDataEventType, SimInfoEventType, StackTextEventType, ShowDialogEventType, DisplayFlagEventType, RouteDataEventType, DisplayShapeEventType]: reg_etype = QEvent.registerEventType(etype) if reg_etype != etype: print('Warning: Registered event type differs from requested type id (%d != %d)' % (reg_etype, etype)) self.splash = Splash() self.splash.show() self.splash.showMessage('Constructing main window') self.processEvents() # Install error message handler handler = QErrorMessage.qtHandler() handler.setWindowFlags(Qt.WindowStaysOnTopHint) # Check and set OpenGL capabilities if not QGLFormat.hasOpenGL(): raise RuntimeError('No OpenGL support detected for this system!') else: f = QGLFormat() f.setVersion(3, 3) f.setProfile(QGLFormat.CoreProfile) f.setDoubleBuffer(True) QGLFormat.setDefaultFormat(f) print('QGLWidget initialized for OpenGL version %d.%d' % (f.majorVersion(), f.minorVersion())) # Create the main window and related widgets self.radarwidget = RadarWidget(navdb) self.win = MainWindow(self, self.radarwidget) self.nd = ND(shareWidget=self.radarwidget) # Enable HiDPI support (Qt5 only) if QT_VERSION == 5: self.setAttribute(Qt.AA_UseHighDpiPixmaps) timer = QTimer(self) timer.timeout.connect(self.radarwidget.updateGL) timer.timeout.connect(self.nd.updateGL) timer.start(50) # Load geo data if False: pb = QProgressDialog('Binary buffer file not found, or file out of date: Constructing vertex buffers from geo data.', 'Cancel', 0, 100) pb.setWindowFlags(Qt.WindowStaysOnTopHint) pb.show() for i in range(101): pb.setValue(i) self.processEvents() QThread.msleep(100) pb.close()
def _set_config(c): """Set the OpenGL configuration""" glformat = QGLFormat() glformat.setRedBufferSize(c['red_size']) glformat.setGreenBufferSize(c['green_size']) glformat.setBlueBufferSize(c['blue_size']) glformat.setAlphaBufferSize(c['alpha_size']) if QT5_NEW_API or PYSIDE6_API: # Qt5 >= 5.4.0 - below options automatically enabled if nonzero. glformat.setSwapBehavior(glformat.DoubleBuffer if c['double_buffer'] else glformat.SingleBuffer) elif PYQT6_API: glformat.setSwapBehavior( glformat.SwapBehavior.DoubleBuffer if c['double_buffer'] else glformat.SwapBehavior.SingleBuffer) else: # Qt4 and Qt5 < 5.4.0 - buffers must be explicitly requested. glformat.setAccum(False) glformat.setRgba(True) glformat.setDoubleBuffer(True if c['double_buffer'] else False) glformat.setDepth(True if c['depth_size'] else False) glformat.setStencil(True if c['stencil_size'] else False) glformat.setSampleBuffers(True if c['samples'] else False) glformat.setDepthBufferSize(c['depth_size'] if c['depth_size'] else 0) glformat.setStencilBufferSize( c['stencil_size'] if c['stencil_size'] else 0) glformat.setSamples(c['samples'] if c['samples'] else 0) glformat.setStereo(c['stereo']) return glformat
def __init__(self, parent, shareWidget, useStencilBuffer): """ #doc @note: If shareWidget is specified, useStencilBuffer is ignored: set it in the widget you're sharing with. """ if shareWidget: self.shareWidget = shareWidget #bruce 051212 glformat = shareWidget.format() QGLWidget.__init__(self, glformat, parent, shareWidget) if not self.isSharing(): assert 0, "%r refused to share GL display list namespace " \ "with %r" % (self, shareWidget) return else: glformat = QGLFormat() if (useStencilBuffer): glformat.setStencil(True) # set gl format to request stencil buffer # (needed for mouseover-highlighting of objects of general # shape in BuildAtoms_Graphicsmode.bareMotion) [bruce 050610] if (self.useMultisample): # use full scene anti-aliasing on hardware that supports it # (note: setting this True works around bug 2961 on some systems) glformat.setSampleBuffers(True) QGLWidget.__init__(self, glformat, parent) pass self.glprefs = drawing_globals.glprefs # future: should be ok if this differs for different glpanes, # even between self and self.shareWidget. AFAIK, the refactoring # I'm doing yesterday and today means this would work fine, # or at least it does most of what would be required for that. # [bruce 090304] self._initialize_view_attributes() # Initial value of depth "constant" (changeable by prefs.) self.DEPTH_TWEAK = DEPTH_TWEAK_UNITS * DEPTH_TWEAK_VALUE self.trackball = Trackball(10, 10) self._functions_to_call_when_gl_context_is_current = [] # piotr 080714: Defined this attribute here in case # chunk.py accesses it in ThumbView. self.lastNonReducedDisplayMode = default_display_mode # piotr 080807 # Most recent quaternion to be used in animation timer. self.last_quat = None self.transforms = [ ] ### TODO: clear this at start of frame, complain if not clear # stack of current transforms (or Nodes that generate them) # [bruce 090220] # Note: this may be revised once we have TransformNode, # e.g. we might push their dt and st separately; # note we might need to push a "slot" for them if they might # change before being popped, or perhaps even if they might # change between the time pushed and the time later used # (by something that collects them from here in association # with a ColorSortedDisplayList). return
b = int(col[2] * 255 + 0.5) f.write(str(eleNum) + " " + str(r) + " " + str(g) + " " + str(b) + "\n" ) f.close() # == Test code import sys if __name__ == '__main__': QApplication.setColorSpec(QApplication.CustomColor) app = QApplication(sys.argv) if not QGLFormat.hasOpenGL(): raise Exception("No Qt OpenGL support.") w = elementColors(None) app.setMainWidget(w) w.resize(400, 350) w.show() w.setCaption('box') app.exec_()
def __init__(self, parent, shareWidget, useStencilBuffer): """ #doc @note: If shareWidget is specified, useStencilBuffer is ignored: set it in the widget you're sharing with. """ if shareWidget: self.shareWidget = shareWidget #bruce 051212 glformat = shareWidget.format() QGLWidget.__init__(self, glformat, parent, shareWidget) if not self.isSharing(): assert 0, "%r refused to share GL display list namespace " \ "with %r" % (self, shareWidget) return else: glformat = QGLFormat() if (useStencilBuffer): glformat.setStencil(True) # set gl format to request stencil buffer # (needed for mouseover-highlighting of objects of general # shape in BuildAtoms_Graphicsmode.bareMotion) [bruce 050610] if (self.useMultisample): # use full scene anti-aliasing on hardware that supports it # (note: setting this True works around bug 2961 on some systems) glformat.setSampleBuffers(True) QGLWidget.__init__(self, glformat, parent) pass self.glprefs = drawing_globals.glprefs # future: should be ok if this differs for different glpanes, # even between self and self.shareWidget. AFAIK, the refactoring # I'm doing yesterday and today means this would work fine, # or at least it does most of what would be required for that. # [bruce 090304] self._initialize_view_attributes() # Initial value of depth "constant" (changeable by prefs.) self.DEPTH_TWEAK = DEPTH_TWEAK_UNITS * DEPTH_TWEAK_VALUE self.trackball = Trackball(10, 10) self._functions_to_call_when_gl_context_is_current = [] # piotr 080714: Defined this attribute here in case # chunk.py accesses it in ThumbView. self.lastNonReducedDisplayMode = default_display_mode # piotr 080807 # Most recent quaternion to be used in animation timer. self.last_quat = None self.transforms = [] ### TODO: clear this at start of frame, complain if not clear # stack of current transforms (or Nodes that generate them) # [bruce 090220] # Note: this may be revised once we have TransformNode, # e.g. we might push their dt and st separately; # note we might need to push a "slot" for them if they might # change before being popped, or perhaps even if they might # change between the time pushed and the time later used # (by something that collects them from here in association # with a ColorSortedDisplayList). return