Exemple #1
0
    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")
Exemple #2
0
    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()