def initializeGL(self): """Initialize OpenGL, VBOs, upload data on the GPU, etc.""" # First check for supported GL version gl_version = float(gl.glGetString(gl.GL_VERSION)[:3]) if gl_version < 3.3: return # background color gl.glClearColor(0, 0, 0, 0) gl.glEnable(gl.GL_BLEND) gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA) self.globaldata = ndUBO() try: # Compile shaders and link color shader program self.color_shader = BlueSkyProgram('data/graphics/shaders/nd-normal.vert', 'data/graphics/shaders/nd-color.frag') self.color_shader.bind_uniform_buffer('global_data', self.globaldata) # Compile shaders and link text shader program self.text_shader = BlueSkyProgram('data/graphics/shaders/nd-text.vert', 'data/graphics/shaders/nd-text.frag') self.text_shader.bind_uniform_buffer('global_data', self.globaldata) except RuntimeError as e: qCritical('Error compiling shaders in radarwidget: ' + e.args[0]) return # Set initial zoom self.globaldata.set_zoom(4.0) self.create_objects()
def setMode(self, mode, color=COLOR_ORANGE): if color == self.COLOR_CLASSIC: self.m_colorStr = "classic" elif color == self.COLOR_ORANGE: self.m_colorStr = "orange" else: qCritical("PixmapKeyboard::setMode(%i, %i) - Invalid keyboard color" % (mode, color)) return self.setMode(mode) if mode == self.HORIZONTAL: self.m_midi_map = midi_key2rect_map_horizontal self.m_pixmap.load(":/bitmaps/kbd_h_%s.png" % self.m_colorStr) self.m_pixmap_mode = self.HORIZONTAL self.p_width = self.m_pixmap.width() self.p_height = self.m_pixmap.height() / 2 elif mode == self.VERTICAL: self.m_midi_map = midi_key2rect_map_vertical self.m_pixmap.load(":/bitmaps/kbd_v_%s.png" % self.m_colorStr) self.m_pixmap_mode = self.VERTICAL self.p_width = self.m_pixmap.width() / 2 self.p_height = self.m_pixmap.height() else: qCritical("PixmapKeyboard::setMode(%i, %i) - Invalid keyboard mode" % (mode, color)) return self.setMode(self.HORIZONTAL) self.setOctaves(self.m_octaves)
def setMode(self, mode, color=COLOR_ORANGE): if color == self.COLOR_CLASSIC: self.fColorStr = "classic" elif color == self.COLOR_ORANGE: self.fColorStr = "orange" else: qCritical("PixmapKeyboard::setMode(%i, %i) - invalid color" % (mode, color)) return self.setMode(mode) if mode == self.HORIZONTAL: self.fMidiMap = kMidiKey2RectMapHorizontal self.fPixmap.load(":/bitmaps/kbd_h_%s.png" % self.fColorStr) self.fPixmapMode = self.HORIZONTAL self.fWidth = self.fPixmap.width() self.fHeight = self.fPixmap.height() / 2 elif mode == self.VERTICAL: self.fMidiMap = kMidiKey2RectMapVertical self.fPixmap.load(":/bitmaps/kbd_v_%s.png" % self.fColorStr) self.fPixmapMode = self.VERTICAL self.fWidth = self.fPixmap.width() / 2 self.fHeight = self.fPixmap.height() else: qCritical("PixmapKeyboard::setMode(%i, %i) - invalid mode" % (mode, color)) return self.setMode(self.HORIZONTAL) self.setOctaves(self.fOctaves)
def displayMeter(self, meter_n, level): if meter_n < 0 or meter_n > self.m_channels: qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number" % (meter_n, level)) return if level < 0.0: level = -level if level > 1.0: level = 1.0 self.m_channels_data[meter_n - 1] = level
def __init__(self, parent=None): QObject.__init__(self, parent) self.m_webPage = QWebPage(self) converter = QFile(':/resources/coffee-script.js') if not converter.open(QFile.ReadOnly): qCritical('CoffeeScript compiler is not available!') sys.exit(1) script = str(converter.readAll()) converter.close() self.m_webPage.mainFrame().evaluateJavaScript(script) self.m_webPage.mainFrame().addToJavaScriptWindowObject('converter', self)
def __init__(self, args, parent=None): QObject.__init__(self, parent) # variable declarations self.m_defaultPageSettings = {} self.m_verbose = args.verbose self.m_page = WebPage(self) self.m_returnValue = 0 self.m_terminated = False # setup the values from args self.m_script = args.script self.m_scriptFile = args.script_name self.m_args = args.script_args do_action('PhantomInitPre', Bunch(locals())) if not args.proxy: QNetworkProxyFactory.setUseSystemConfiguration(True) else: proxy = QNetworkProxy(QNetworkProxy.HttpProxy, args.proxy[0], int(args.proxy[1])) QNetworkProxy.setApplicationProxy(proxy) # Provide WebPage with a non-standard Network Access Manager self.m_netAccessMan = NetworkAccessManager(args.disk_cache, args.ignore_ssl_errors, self) self.m_page.setNetworkAccessManager(self.m_netAccessMan) self.m_page.javaScriptConsoleMessageSent.connect(self.printConsoleMessage) self.m_defaultPageSettings['loadImages'] = args.load_images self.m_defaultPageSettings['loadPlugins'] = args.load_plugins self.m_defaultPageSettings['userAgent'] = self.m_page.userAgent() self.m_page.applySettings(self.m_defaultPageSettings) # inject our properties and slots into javascript self.m_page.mainFrame().addToJavaScriptWindowObject('phantom', self) bootstrap = QFile(':/bootstrap.js') if not bootstrap.open(QFile.ReadOnly): qCritical('Can not bootstrap!') sys.exit(1) bootstrapper = str(bootstrap.readAll()) bootstrap.close() if not bootstrapper: qCritical('Can not bootstrap!') sys.exit(1) self.m_page.mainFrame().evaluateJavaScript(bootstrapper) do_action('PhantomInitPost', Bunch(locals()))
def initializeGL(self): """Initialize OpenGL, VBOs, upload data on the GPU, etc.""" # First check for supported GL version gl_version = float(gl.glGetString(gl.GL_VERSION)[:3]) if gl_version < 3.3: print('OpenGL context created with GL version %.1f' % gl_version) qCritical('Your system reports that it supports OpenGL up to version %.1f. The minimum requirement for BlueSky is OpenGL 3.3. \ Generally, AMD/ATI/nVidia cards from 2008 and newer support OpenGL 3.3, and Intel integrated graphics from the Haswell \ generation and newer. If you think your graphics system should be able to support GL>=3.3 please open an issue report \ on the BlueSky Github page (https://github.com/ProfHoekstra/bluesky/issues)' % gl_version) return # background color gl.glClearColor(0, 0, 0, 0) gl.glEnable(gl.GL_BLEND) gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA) self.globaldata = radarUBO() try: # Compile shaders and link color shader program self.color_shader = BlueSkyProgram('data/graphics/shaders/radarwidget-normal.vert', 'data/graphics/shaders/radarwidget-color.frag') self.color_shader.bind_uniform_buffer('global_data', self.globaldata) # Compile shaders and link texture shader program self.texture_shader = BlueSkyProgram('data/graphics/shaders/radarwidget-normal.vert', 'data/graphics/shaders/radarwidget-texture.frag') self.texture_shader.bind_uniform_buffer('global_data', self.globaldata) # Compile shaders and link text shader program self.text_shader = BlueSkyProgram('data/graphics/shaders/radarwidget-text.vert', 'data/graphics/shaders/radarwidget-text.frag') self.text_shader.bind_uniform_buffer('global_data', self.globaldata) self.ssd_shader = BlueSkyProgram('data/graphics/shaders/ssd.vert', 'data/graphics/shaders/ssd.frag', 'data/graphics/shaders/ssd.geom') self.ssd_shader.bind_uniform_buffer('global_data', self.globaldata) self.ssd_shader.loc_vlimits = gl.glGetUniformLocation(self.ssd_shader.program, 'Vlimits') except RuntimeError as e: qCritical('Error compiling shaders in radarwidget: ' + e.args[0]) return # create all vertex array objects self.create_objects()
def setColor(self, color): self.m_color = color if color in (self.BLUE, self.GREEN, self.RED, self.YELLOW): size = 14 elif color == self.BIG_RED: size = 32 else: return qCritical("LEDButton::setColor(%i) - Invalid color" % color) self.setPixmapSize(size)
def setColor(self, color): if color == self.GREEN: self.fColorBase = QColor(93, 231, 61) self.fColorBaseAlt = QColor(15, 110, 15, 100) elif color == self.BLUE: self.fColorBase = QColor(82, 238, 248) self.fColorBaseAlt = QColor(15, 15, 110, 100) else: return qCritical("DigitalPeakMeter::setColor(%i) - invalid color" % color) self.setOrientation(self.fOrientation)
def setChannels(self, channels): if channels < 0: return qCritical("DigitalPeakMeter::setChannels(%i) - 'channels' must be a positive integer" % channels) self.fChannels = channels self.fChannelsData = [] self.fLastValueData = [] for x in range(channels): self.fChannelsData.append(0.0) self.fLastValueData.append(0.0)
def displayMeter(self, meter, level): if meter <= 0 or meter > self.fChannels: return qCritical("DigitalPeakMeter::displayMeter(%i, %f) - invalid meter number" % (meter, level)) if not isinstance(level, float): return qCritical("DigitalPeakMeter::displayMeter(%i, %f) - meter value must be float" % (meter, level)) i = meter - 1 if self.fSmoothMultiplier > 0: level = (self.fLastValueData[i] * self.fSmoothMultiplier + level) / float(self.fSmoothMultiplier + 1) if level < 0.001: level = 0.0 elif level > 0.999: level = 1.0 if self.fChannelsData[i] != level: self.fChannelsData[i] = level self.update() self.fLastValueData[i] = level
def setOrientation(self, orientation): self.fOrientation = orientation if self.fOrientation == self.HORIZONTAL: self.fGradientMeter.setColorAt(0.0, self.fColorBase) self.fGradientMeter.setColorAt(0.2, self.fColorBase) self.fGradientMeter.setColorAt(0.4, self.fColorBase) self.fGradientMeter.setColorAt(0.6, self.fColorBase) self.fGradientMeter.setColorAt(0.8, Qt.yellow) self.fGradientMeter.setColorAt(1.0, Qt.red) elif self.fOrientation == self.VERTICAL: self.fGradientMeter.setColorAt(0.0, Qt.red) self.fGradientMeter.setColorAt(0.2, Qt.yellow) self.fGradientMeter.setColorAt(0.4, self.fColorBase) self.fGradientMeter.setColorAt(0.6, self.fColorBase) self.fGradientMeter.setColorAt(0.8, self.fColorBase) self.fGradientMeter.setColorAt(1.0, self.fColorBase) else: return qCritical("DigitalPeakMeter::setOrientation(%i) - invalid orientation" % orientation) self.updateSizes()
corePlugin = None for spec in plugins: if spec.name == "Core": corePlugin = spec break else: nativePaths = ",".join(pluginPaths) #noinspection PyCallByClass raise ImportError( QApplication.translate("Application", "FATAL: Could not find Core plugin in {}").format(nativePaths)) sys.exit(1) if corePlugin.hasError: raise PluginError(corePlugin.errorString) sys.exit(1) #TODO: parse options - version, help pluginManager.loadPlugins() if corePlugin.hasError: qCritical(corePlugin.errorString) sys.exit(1) if pluginManager.hasError: from medux.extensionsystem.gui import PluginErrorOverview errorOverview = PluginErrorOverview() errorOverview.exec_() app.aboutToQuit.connect(pluginManager.shutDown) sys.exit(app.exec_())