Exemple #1
0
 def initializeGL(self):
     qDebug("initializeGL()")
     if self.logger:
         self.logger.initialize()
         self.logger.messageLogged.connect(lambda message: qDebug(self.__tr("OpenGL debug message: {0}").fomat(message.message())))
         self.logger.startLogging()
     
     gl = QOpenGLContext.currentContext().versionFunctions(glVersionProfile)
     QOpenGLContext.currentContext().aboutToBeDestroyed.connect(self.cleanup)
     
     self.clean = False
     
     fragmentShader = None
     vertexShader = vertexShader2D
     if self.ddsFile.isCubemap:
         fragmentShader = fragmentShaderCube
         vertexShader = vertexShaderCube
         if QOpenGLContext.currentContext().hasExtension(b"GL_ARB_seamless_cube_map"):
             GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
             gl.glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS)
     elif self.ddsFile.glFormat.samplerType == "F":
         fragmentShader = fragmentShaderFloat
     elif self.ddsFile.glFormat.samplerType == "UI":
         fragmentShader = fragmentShaderUInt
     else:
         fragmentShader = fragmentShaderSInt
     
     self.program = QOpenGLShaderProgram(self)
     self.program.addShaderFromSourceCode(QOpenGLShader.Vertex, vertexShader)
     self.program.addShaderFromSourceCode(QOpenGLShader.Fragment, fragmentShader)
     self.program.bindAttributeLocation("position", 0)
     self.program.bindAttributeLocation("texCoordIn", 1)
     self.program.link()
     
     self.transparecyProgram = QOpenGLShaderProgram(self)
     self.transparecyProgram.addShaderFromSourceCode(QOpenGLShader.Vertex, transparencyVS)
     self.transparecyProgram.addShaderFromSourceCode(QOpenGLShader.Fragment, transparencyFS)
     self.transparecyProgram.bindAttributeLocation("position", 0)
     self.transparecyProgram.link()
     
     self.vao = QOpenGLVertexArrayObject(self)
     vaoBinder = QOpenGLVertexArrayObject.Binder(self.vao)
     
     self.vbo = QOpenGLBuffer(QOpenGLBuffer.VertexBuffer)
     self.vbo.create()
     self.vbo.bind()
     
     theBytes = struct.pack("%sf" % len(vertices), *vertices)
     self.vbo.allocate(theBytes, len(theBytes))
     
     gl.glEnableVertexAttribArray(0)
     gl.glEnableVertexAttribArray(1)
     gl.glVertexAttribPointer(0, 4, gl.GL_FLOAT, False, 6 * 4, 0)
     gl.glVertexAttribPointer(1, 2, gl.GL_FLOAT, False, 6 * 4, 4 * 4)
     
     self.texture = self.ddsFile.asQOpenGLTexture(gl, QOpenGLContext.currentContext())
Exemple #2
0
    def setupGL(self):

        self.program = QOpenGLShaderProgram(self.context())
        info("PROGRAM", self.program)

        # addShaderFromSourceCode() only returns a bool telling whether everything went well

        if self.program.addShaderFromSourceCode(QOpenGLShader.Vertex,
                                                self.vertexShaderSource):
            info("VERTEX SHADER",
                 "Managed to load and parse the vertex shader")

        if self.program.addShaderFromSourceCode(QOpenGLShader.Fragment,
                                                self.fragmentShaderSource):
            info("FRAGMENT SHADER",
                 "Managed to load and parse the fragment shader")

        # Compile and bind the shader program to the current context
        self.program.link()
        self.program.bind()

        # Tell GL that whenever we run glClear, this is the color that
        # should be used. We only need to do this once.
        self.gl.glClearColor(0.1, 0.1, 0.1, 1.0)

        self.dumpGLLogMessages("setupGL()")
Exemple #3
0
    def __init__(self, workspace, surface: QSurface):
        super().__init__()

        self.surf = surface
        prof = QOpenGLVersionProfile()
        prof.setVersion(2, 0)

        self.vao = GL.glGenVertexArrays(1)
        self.vbo, self.vbo2 = GL.glGenBuffers(2)

        self.texture = -1
        self.current_model: BlockModel = None
        self.workspace = workspace

        self.array1, array2 = None, None

        self.shader = QOpenGLShaderProgram()
        self.shader.addShaderFromSourceFile(QOpenGLShader.Vertex,
                                            "shader/block.vertex.glsl")
        self.shader.addShaderFromSourceFile(QOpenGLShader.Fragment,
                                            "shader/block.fragment.glsl")
        self.shader.link()

        self.proj_mat = glm.perspective(
            1.57,
            self.surf.size().width() / self.surf.size().height(), 0.1, 100)
        self.texture = GL.glGenTextures(1)
Exemple #4
0
    def initializeGL(self):
        version_profile = QOpenGLVersionProfile()
        version_profile.setVersion(2, 0)
        self.gl = self.context().versionFunctions(version_profile)
        self.gl.initializeOpenGLFunctions()

        self.makeObject()

        self.gl.glEnable(self.gl.GL_DEPTH_TEST)
        self.gl.glEnable(self.gl.GL_CULL_FACE)

        vshader = QOpenGLShader(QOpenGLShader.Vertex, self)
        vshader.compileSourceCode(self.vsrc)

        fshader = QOpenGLShader(QOpenGLShader.Fragment, self)
        fshader.compileSourceCode(self.fsrc)

        self.program = QOpenGLShaderProgram()
        self.program.addShader(vshader)
        self.program.addShader(fshader)
        self.program.bindAttributeLocation("vertex",
                                           self.PROGRAM_VERTEX_ATTRIBUTE)
        self.program.bindAttributeLocation("texCoord",
                                           self.PROGRAM_TEXCOORD_ATTRIBUTE)
        self.program.link()

        self.program.bind()
        self.program.setUniformValue("texture", 0)

        self.program.enableAttributeArray(self.PROGRAM_VERTEX_ATTRIBUTE)
        self.program.enableAttributeArray(self.PROGRAM_TEXCOORD_ATTRIBUTE)
        self.program.setAttributeArray(self.PROGRAM_VERTEX_ATTRIBUTE,
                                       self.vertices)
        self.program.setAttributeArray(self.PROGRAM_TEXCOORD_ATTRIBUTE,
                                       self.texCoords)
Exemple #5
0
    def initializeGL(self):
        self.makeObject()

        glEnable(GL_DEPTH_TEST)
        glEnable(GL_CULL_FACE)

        vshader = QOpenGLShader(QOpenGLShader.Vertex, self)
        vshader.compileSourceCode(self.vsrc)

        fshader = QOpenGLShader(QOpenGLShader.Fragment, self)
        fshader.compileSourceCode(self.fsrc)

        self.program = QOpenGLShaderProgram(self)
        self.program.addShader(vshader)
        self.program.addShader(fshader)
        self.program.bindAttributeLocation('vertex',
                                           self.PROGRAM_VERTEX_ATTRIBUTE)
        self.program.bindAttributeLocation('texCoord',
                                           self.PROGRAM_TEXCOORD_ATTRIBUTE)
        self.program.link()

        self.program.bind()
        self.program.setUniformValue('texture', 0)

        self.program.enableAttributeArray(self.PROGRAM_VERTEX_ATTRIBUTE)
        self.program.enableAttributeArray(self.PROGRAM_TEXCOORD_ATTRIBUTE)
        self.program.setAttributeArray(self.PROGRAM_VERTEX_ATTRIBUTE,
                                       self.vertices)
        self.program.setAttributeArray(self.PROGRAM_TEXCOORD_ATTRIBUTE,
                                       self.texCoords)
Exemple #6
0
    def initializeGL(self):
        GL.glClearColor(0.15, 0.15, 0.15, 1.0)
        GL.glEnable(GL.GL_DEPTH_TEST)
        GL.glEnable(GL.GL_LIGHT0)
        GL.glEnable(GL.GL_LIGHTING)

        self.program = QOpenGLShaderProgram(self)
        self.program.addShaderFromSourceCode(QOpenGLShader.Vertex,
                                             self.vertexShaderSource)
        self.program.addShaderFromSourceCode(QOpenGLShader.Fragment,
                                             self.fragmentShaderSource)
        self.program.link()
        self.xRot = 0
        self.yRot = 0
        self.zRot = 0

        self.vertexAtr = self.program.attributeLocation("vertexAtr")
        self.colAttr = self.program.attributeLocation("colAttr")

        self.projectionMatrixAttr = self.program.uniformLocation(
            "projectionMatrix")
        self.modelViewMatrixAttr = self.program.uniformLocation(
            "modelViewMatrix")
        self.normalMatrixAttr = self.program.uniformLocation("normalMatrix")

        self.normalAttr = self.program.attributeLocation("normalAttr")

        self.controlPtsAttr = self.program.attributeLocation("controlPtsAttr")
        self.pressClick = QVector3D(0, 0, 0)
        self.releaseClick = QVector3D(0, 0, 0)
        self.programid = 0
    def initializeGL(self):

        self.resized = True

        self.output = zeros((100, 100))

        logger.debug("initializeGL")

        self.programTex = QOpenGLShaderProgram()
        self.programTex.addShaderFromSourceCode(QOpenGLShader.Vertex,
                                                vertShaderTex)
        self.programTex.addShaderFromSourceCode(QOpenGLShader.Fragment,
                                                fragShaderTex)
        self.programTex.link()
        self.programTex.bind()
        logger.debug("GLSL programTex log:%s", self.programTex.log())

        glClearColor(0, 0, 0, 1.)

        self.texture = None

        self.quadCoord = np.array([[-1., -1., 0.], [1., -1., 0.], [1., 1., 0.],
                                   [1., 1., 0.], [-1., 1., 0.], [-1., -1.,
                                                                 0.]])

        self.quadCoordTex = np.array([[0, 0], [1., 0.], [1., 1.], [1., 1.],
                                      [0, 1.], [0, 0]])

        self.set_colormap(spimagine.config.__DEFAULTCOLORMAP__)

        glDisable(GL_DEPTH_TEST)
        glEnable(GL_BLEND)

        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
    def paint(self):
        # for Darwin, it's a must
        if pf.uname().system == 'Darwin':
            global GL
            GL = self._window.openglContext().versionFunctions()

        w = self._viewport_size.width()
        h = self._viewport_size.height()

        GL.glViewport(0, 0, int(w), int(h))

        if self._shader_program is None:
            self._shader_program = QOpenGLShaderProgram()
            self._shader_program.addShaderFromSourceFile(
                QOpenGLShader.Vertex, 'shaders/OpenGL_2_1/vertex.glsl')
            self._shader_program.addShaderFromSourceFile(
                QOpenGLShader.Fragment, 'shaders/OpenGL_2_1/fragment.glsl')
            self._shader_program.bindAttributeLocation('position', 0)
            self._shader_program.bindAttributeLocation('color', 1)
            self._shader_program.link()

        self._shader_program.bind()
        self._shader_program.enableAttributeArray(0)
        self._shader_program.enableAttributeArray(1)

        self._shader_program.setAttributeArray(0, positions)
        self._shader_program.setAttributeArray(1, colors)

        if self._projection_type == 0:
            self._projection_matrix = self._perspective_projection_matrix
        elif self._projection_type == 1:
            self._projection_matrix = self._orthographic_projection_matrix

        self._model_matrix = self.build_rotation_matrix()

        self._shader_program.setUniformValue(
            'model_matrix', QMatrix4x4(self._model_matrix.flatten().tolist()))

        self._shader_program.setUniformValue(
            'view_matrix',
            QMatrix4x4(self._camera.get_view_matrix().flatten().tolist()))

        self._shader_program.setUniformValue(
            'projection_matrix',
            QMatrix4x4(self._projection_matrix.flatten().tolist()))

        GL.glClearColor(0.2, 0.2, 0.2, 1)
        GL.glEnable(GL.GL_DEPTH_TEST)
        GL.glClear(GL.GL_COLOR_BUFFER_BIT)
        GL.glDrawArrays(GL.GL_TRIANGLES, 0, 3)

        self._shader_program.disableAttributeArray(0)
        self._shader_program.disableAttributeArray(1)

        self._shader_program.release()

        # Restore the OpenGL state for QtQuick rendering
        self._window.resetOpenGLState()
        self._window.update()
Exemple #9
0
    def setVertexShader(self, shader):
        if not self._shader_program:
            self._shader_program = QOpenGLShaderProgram()

        if not self._shader_program.addShaderFromSourceCode(
                QOpenGLShader.Vertex, shader):
            Logger.log("e", "Vertex shader failed to compile: %s",
                       self._shader_program.log())
Exemple #10
0
 def _shader_from_file(self, fname_vert, fname_frag):
     shader = QOpenGLShaderProgram()
     shader.addShaderFromSourceFile(QOpenGLShader.Vertex, fname_vert)
     shader.addShaderFromSourceFile(QOpenGLShader.Fragment, fname_frag)
     shader.link()
     shader.bind()
     logger.debug("GLSL program log:%s", shader.log())
     return shader
Exemple #11
0
    def setFragmentShader(self, shader):
        if not self._shader_program:
            self._shader_program = QOpenGLShaderProgram()

        if not self._shader_program.addShaderFromSourceCode(
                QOpenGLShader.Fragment, shader):
            Logger.log("e", "Fragment shader failed to compile: %s",
                       self._shader_program.log())
Exemple #12
0
 def __init__(self):
     self.invert = None
     self.shader_program = QOpenGLShaderProgram()
     self.vertex_attribute_object = None
     self.vertex_position = None
     self.projection = QMatrix4x4()
     self.model = QMatrix4x4()
     self.view = QMatrix4x4()
Exemple #13
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.scene_shader_program = QOpenGLShaderProgram()
        self.screen_shader_program = QOpenGLShaderProgram()
        x0 = -0.5
        y0 = -0.5
        width = 1

        self.vertex_data = np.array([
            x0, y0, 0.0,
            x0 + width, y0, 0.0,
            x0 + width, y0 + width, 0.0,

            x0 + width, y0 + width, 0.0,
            x0, y0 + width, 0.0,
            x0, y0, 0.0,
        ], dtype=np.float32)
Exemple #14
0
    def setGeometryShader(self, shader):
        if not self._shader_program:
            self._shader_program = QOpenGLShaderProgram()

        if not self._shader_program.addShaderFromSourceCode(
                QOpenGLShader.Geometry, shader):
            Logger.log("e", "Geometry shader failed to compile: %s",
                       self._shader_program.log())
    def setGeometryShader(self, shader: str) -> bool:
        if not self._shader_program:
            self._shader_program = QOpenGLShaderProgram()

        if not cast(QOpenGLShaderProgram, self._shader_program).addShaderFromSourceCode(QOpenGLShader.Geometry, shader):
            Logger.log("e", "Geometry shader failed to compile: %s", self._shader_program.log())
            return False

        return True
Exemple #16
0
    def paint(self):
        if not self.m_program:
            self.gl.initializeOpenGLFunctions()

            self.m_program = QOpenGLShaderProgram(self)
            self.m_program.addShaderFromSourceCode(
                QOpenGLShader.Vertex, "attribute highp vec4 vertices;"
                "varying highp vec2 coords;"
                "void main() {"
                "    gl_Position = vertices;"
                "    coords = vertices.xy;"
                "}")
            self.m_program.addShaderFromSourceCode(
                QOpenGLShader.Fragment, "uniform lowp float t;"
                "varying highp vec2 coords;"
                "void main() {"
                "    lowp float i = 1. - (pow(abs(coords.x), 4.) + pow(abs(coords.y), 4.));"
                "    i = smoothstep(t - 0.8, t + 0.8, i);"
                "    i = floor(i * 20.) / 20.;"
                "    gl_FragColor = vec4(coords * .5 + .5, i, i);"
                "}")

            self.m_program.bindAttributeLocation("vertices", 0)

            self.m_program.link()

        self.m_program.bind()

        self.m_program.enableAttributeArray(0)

        values = [(-1, -1), (1, -1), (-1, 1), (1, 1)]

        self.m_program.setAttributeArray(0, values)

        self.m_program.setUniformValue("t", self.m_t)

        #print("DATA:",self.m_viewportSize.width(), self.m_viewportSize.height(), self.m_t)#, self.gl.glViewport)

        self.gl.glViewport(0, 0, self.m_viewportSize.width(),
                           self.m_viewportSize.height())

        self.gl.glDisable(self.gl.GL_DEPTH_TEST)

        self.gl.glClearColor(0, 0, 0, 1)

        self.gl.glClear(self.gl.GL_COLOR_BUFFER_BIT)

        self.gl.glEnable(self.gl.GL_BLEND)

        self.gl.glBlendFunc(self.gl.GL_SRC_ALPHA, self.gl.GL_ONE)

        self.gl.glDrawArrays(self.gl.GL_TRIANGLE_STRIP, 0, 4)

        self.m_program.disableAttributeArray(0)

        self.m_program.release()
Exemple #17
0
    def setFragmentShader(self, shader):
        """Set the fragment shader to use.

        :param shader: :type{string} The fragment shader to use.
        """
        if not self._shader_program:
            self._shader_program = QOpenGLShaderProgram()

        if not self._shader_program.addShaderFromSourceCode(QOpenGLShader.Fragment, shader):
            Logger.log("e", "Fragment shader failed to compile: %s", self._shader_program.log())
Exemple #18
0
    def __init__(self, processor, df, parent=None):
        super().__init__(parent)
        self.parent = parent
        self.processor = processor
        # Data
        self.df = df

        # UI
        self.setupUi(self)
        self.setupControls()
        self.keyPressEvent = self.keyPressed
        self.mouseMoveEvent = self.mouseMoved

        # Control & Display
        self.mouse_grabbed = False

        self.camera_pos = QVector3D(0.5, 0.5, -2)  # Start camera position
        self.center = QVector3D(0.5, 0, 0.5)  # Center of object
        self.rot_center = QVector3D(0.5, 0.5, 0.5)  # Center of rotation
        self.camera_rot = QVector3D(0, 0, 1)  # Camera rotation
        self.scale_vec = QVector3D(1, 1, 1)  # Object scale
        self.real_prop = processor.get_real_scaling()  # val to lat

        self.light_pos = QVector3D(self.xLightSpinBox.value(),
                                   self.yLightSpinBox.value(),
                                   self.zLightSpinBox.value())
        self.ambient = self.ambientSlider.value() / 100
        self.diffuse = self.diffuseSlider.value() / 100
        self.alpha = self.alphaSlider.value() / 100  # Transparency

        # Drawing
        self.normals = []
        self.colors = []
        self.coords_array = []
        # !> len(self.normals) == len(self.colors) == len(self.coords_array)

        self.update_light = False  # Update for light is needed
        self.update_buffer = False  # Update for whole buffer is needed

        self.show_grid = self.gridCheckBox.isChecked()
        self.show_contour = self.contourCheckBox.isChecked()
        self.contour_levels = self.contourLevelSpinBox.value()
        self.show_light_lines = True
        self.grid_freq = 10

        self.grid_color = QVector4D(1, 1, 1, 1)
        self.contour_color = QVector4D(1, 1, 1, 1)
        self.light_line_color = QVector4D(1, 0.6, 0, 1)

        self.prepareScene()
        self.updateUi()

        self.shaders = QOpenGLShaderProgram()
        self.openGLWidget.initializeGL = self.initializeGL
        self.openGLWidget.paintGL = self.paintGL
Exemple #19
0
 def __init__(self, parent):
     super().__init__(parent)
     self.shader_program = QOpenGLShaderProgram(parent=self)
     self.inverted = False
     self.vertex_attribute_object = None
     self.vertex_data = np.array([
         0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,
         0.0, 0.0, 0.0, 1.0, 0.0
     ],
                                 dtype=np.float32)
     self.vertex_position_uniform = None
Exemple #20
0
    def initialize(self):
        self.m_program = QOpenGLShaderProgram(self)

        self.m_program.addShaderFromSourceCode(QOpenGLShader.Vertex,
                                               self.vertexShaderSource)
        self.m_program.addShaderFromSourceCode(QOpenGLShader.Fragment,
                                               self.fragmentShaderSource)

        self.m_program.link()

        self.m_posAttr = self.m_program.attributeLocation('posAttr')
        self.m_colAttr = self.m_program.attributeLocation('colAttr')
        self.m_matrixUniform = self.m_program.uniformLocation('matrix')
    def setVertexShader(self, shader: str) -> bool:
        """Set the vertex shader to use.

        :param shader: :type{string} The vertex shader to use.
        """
        if not self._shader_program:
            self._shader_program = QOpenGLShaderProgram()

        if not cast(QOpenGLShaderProgram, self._shader_program).addShaderFromSourceCode(QOpenGLShader.Vertex, shader):
            Logger.log("e", "Vertex shader failed to compile: %s", self._shader_program.log())
            return False

        return True
    def create_shader(self):
        self.m_program = QOpenGLShaderProgram(self)

        self.m_program.addShaderFromSourceFile(QOpenGLShader.Vertex, "shaders/chapter2.vs.glsl")
        self.m_program.addShaderFromSourceFile(QOpenGLShader.Fragment, "shaders/chapter2.fs.glsl")

        self.m_program.link()

        self.m_vertex = self.m_program.attributeLocation("m_vertex")
        self.m_offset = self.m_program.attributeLocation("m_offset")
        self.m_color = self.m_program.attributeLocation("m_color")

        return self
Exemple #23
0
 def __init__(self, context, numAttibutesInvbo=1):
     super(GLProgram, self).__init__()
     self._fakeTimer = 0
     self.num_of_elements_in_vbo = numAttibutesInvbo
     self.vertex_elements = 3
     self._program = QOpenGLShaderProgram(context)
     self._textures = []
     self._images = []
     self._vertexBufferObject = QOpenGLBuffer(QOpenGLBuffer.VertexBuffer)
     self._indexesBufferObject = QOpenGLBuffer(QOpenGLBuffer.IndexBuffer)
     self._vertexArrayObject = QOpenGLVertexArrayObject()
     self._vertices = []
     self._indices = []
     self.attributes = []
    def _update(self):

        if self._linkDirty:
            self._program = QOpenGLShaderProgram()
            if self._vertexShader is not None:
                self._program.addShaderFromSourceCode(QOpenGLShader.Vertex,
                                                      self._vertexShader)
            if self._geometryShader is not None:
                self._program.addShaderFromSourceCode(QOpenGLShader.Geometry,
                                                      self._geometryShader)
            if self._fragmentShader is not None:
                self._program.addShaderFromSourceCode(QOpenGLShader.Fragment,
                                                      self._fragmentShader)
            self._program.link()
            self._linkDirty = False
Exemple #25
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self.shader_program = QOpenGLShaderProgram()
     width = 1
     half_width = width / 2
     rect = QRectF(-half_width, -half_width, width, width)
     self.setRect(rect)
     self.vertex_attribute_object = None
     self.vertex_data = np.array([
         -half_width, -half_width, 0.0, -half_width + width, -half_width,
         0.0, -half_width + width, -half_width + width, 0.0,
         -half_width + width, -half_width + width, 0.0, -half_width,
         half_width, 0.0, -half_width, -half_width, 0.0
     ],
                                 dtype=np.float32)
     self.vertex_position_uniform = None
Exemple #26
0
    def __init__(self, homography_transform, parent=None):
        super().__init__(parent)
        self._background_colour = None
        self._drawables = []
        self._image = None
        self._intensity_mask = None
        self.centre_x_uniform = None
        self.centre_y_uniform = None
        self.crosshair = Crosshair(self)
        self.height_uniform = None
        self.image_to_upload = None
        self.gl_initialised = False
        self.shape_uniform = None
        self.max_height_uniform = None
        self.rotation_uniform = None
        self.texture = -1
        self.texture_uploaded = False
        self.width_x_uniform = None
        self.width_y_uniform = None
        self.homography_transform = homography_transform
        self.projection_matrix = QMatrix4x4()
        self.view_matrix = QMatrix4x4()
        self.set_background_colour(0)
        self.shader_program = QOpenGLShaderProgram()
        self._show_crosshair = False
        self._show_scale_bar = False
        self._crosshair_thickness = 1
        self._gaussian_shape = QVector2D()
        self._image_to_render = None
        self._inverted = False
        self._scale_bar_thickness = 1
        self._scale_bar_width = 10
        self._use_homography = False
        self._use_intensity_mask = False

        self.gaussian = Gaussian()

        self.transform = QTransform()
        self.dx = 0
        self.dy = 0
        self.rotation = 0
        self.scale_value = 1

        self.setWindowTitle('Stimulus Window')

        self.homography_transform.matrixChanged.connect(self.update_image)
Exemple #27
0
    def init_shaders(self):
        program = QOpenGLShaderProgram(self)

        if not program.addShaderFromSourceFile(
                QOpenGLShader.Vertex, get_resources_path("shader.vert")):
            return None

        if not program.addShaderFromSourceFile(
                QOpenGLShader.Fragment, get_resources_path("shader.frag")):
            return None

        if not program.link():
            return None

        if not program.bind():
            return None

        return program
Exemple #28
0
    def __init__(self):
        self.initialised = False
        self.shader_program = QOpenGLShaderProgram()
        self.vertex_position = None
        self.texture = 0
        self.frame_buffer = 0
        self.recreate_frame_buffer = True

        x0 = -1
        y0 = -1
        width = 2

        self.vertex_data = np.array([
            x0, y0, 0.0, 0.0, 0.0, x0 + width, y0, 0.0, 1.0, 0.0, x0 + width,
            y0 + width, 0.0, 1.0, 1.0, x0 + width, y0 + width, 0.0, 1.0, 1.0,
            x0, y0 + width, 0.0, 0.0, 1.0, x0, y0, 0.0, 0.0, 0.0
        ],
                                    dtype=np.float32)
Exemple #29
0
    def __init__(self, parent):
        super().__init__(parent)
        self.shader_program = QOpenGLShaderProgram(self)
        self.vertex_data = np.array([
            # X,    Y,   Z     U,   V
            -LOC, LOC, 0.0, 0.0, 1.0,
            LOC, LOC, 0.0, 1.0, 1.0,
            LOC, -LOC, 0.0, 1.0, 0.0,

            LOC, -LOC, 0.0, 1.0, 0.0,
            -LOC, -LOC, 0.0, 0.0, 0.0,
            -LOC, LOC, 0.0, 0.0, 1.0,
        ], dtype=np.float32)

        self._image = None#QImage()
        self.vao = None
        self.vertex_position_uniform = -1
        self.
Exemple #30
0
    def __init__(self):
        super(LogoRenderer, self).__init__()
        self.m_fAngle = None
        self.m_fScale = None
        self.vertices = []
        self.normals = []
        self.program1 = QOpenGLShaderProgram()
        self.vertexAttr1 = 0
        self.normalAttr1 = 0
        self.matrixUniform1 = 0

        ver = QOpenGLVersionProfile()
        ver.setVersion(2, 1)
        cntx = QOpenGLContext.currentContext()
        #print("QOpenGLContext:", cntx, ver)
        fmt = cntx.format()
        fmt.setVersion(2, 1)
        cntx.setFormat(fmt)
        self.gl = cntx.versionFunctions(ver)