def render(self, visibility): if self.mode != 3: self.renderBackground() self.renderLayers(self.backgroundLayers, visibility) if shaders.enable("stage"): height = 0.0 for i in shaders.var["color"].keys(): shaders.modVar("color", shaders.var["color"][i], 0.05, 10.0) height += shaders.var["color"][i][3] / 3.0 height = height**2 shaders.setVar("height", 2 * height) shaders.setVar("ambientGlow", height / 1.5) shaders.setVar("glowStrength", 60 + height * 80.0) glBegin(GL_TRIANGLE_STRIP) glVertex3f(-8.0, 1.0, 7.0) glVertex3f(8.0, 1.0, 7.0) glVertex3f(-8.0, 4.0, 7.0) glVertex3f(8.0, 4.0, 7.0) glEnd() shaders.disable() self.scene.renderGuitar() self.renderLayers(self.foregroundLayers, visibility) self.rockmeter.render(visibility)
def render(self, visibility): if self.mode != 3: self.renderBackground() self.renderLayers(self.backgroundLayers, visibility) if shaders.enable("stage"): height = 0.0 for i in shaders.var["color"].keys(): shaders.modVar("color",shaders.var["color"][i],0.05,10.0) height += shaders.var["color"][i][3]/3.0 height=height**2 shaders.setVar("height",2*height) shaders.setVar("ambientGlow",height/1.5) shaders.setVar("glowStrength",60+height*80.0) glBegin(GL_TRIANGLE_STRIP) glVertex3f(-8.0, 1.0,7.0) glVertex3f(8.0, 1.0,7.0) glVertex3f(-8.0, 4.0,7.0) glVertex3f(8.0, 4.0,7.0) glEnd() shaders.disable() self.scene.renderGuitar() self.renderLayers(self.foregroundLayers, visibility) self.rockmeter.render(visibility)
def drawSideBars(self, visibility, song, pos): if not song: return if not song.readyToGo: return v = visibility w = self.boardWidth + 0.15 if self.failcount == v: board_col = self.board_col_flash else: board_col = self.board_col glEnable(GL_TEXTURE_2D) if self.instrument.starPowerActive and self.oSideBars and not ( self.guitarSolo or self.soloSideBars): self.oSideBars.texture.bind() elif self.instrument.starPowerActive and self.oSoloSideBars and self.oSidebars and self.guitarSolo: self.oSoloSideBars.texture.bind() elif self.guitarSolo and self.soloSideBars: self.soloSideBars.texture.bind() elif self.sideBars: self.sideBars.texture.bind() if self.isFailing and self.failSideBars and v == self.failcount: self.failSideBars.texture.bind() cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.sidebars_vtx, colors=board_col, texcoords=self.board_tex) glDisable(GL_TEXTURE_2D) if shaders.enable("sololight"): shaders.modVar("color", shaders.var["solocolor"]) shaders.setVar("offset", (-3.5, -w / 2)) cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.soloLightVtx1) shaders.setVar("offset", (-3.5, w / 2)) shaders.setVar("time", shaders.time() + 0.5) cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.soloLightVtx2) shaders.disable()
def drawSideBars(self, visibility, song, pos): if not song: return if not song.readyToGo: return v = visibility w = self.boardWidth + 0.15 if self.failcount == v: board_col = self.board_col_flash else: board_col = self.board_col glEnable(GL_TEXTURE_2D) if self.instrument.starPowerActive and self.oSideBars and not (self.guitarSolo or self.soloSideBars): self.oSideBars.texture.bind() elif self.instrument.starPowerActive and self.oSoloSideBars and self.oSidebars and self.guitarSolo: self.oSoloSideBars.texture.bind() elif self.guitarSolo and self.soloSideBars: self.soloSideBars.texture.bind() elif self.sideBars: self.sideBars.texture.bind() if self.isFailing and self.failSideBars and v == self.failcount: self.failSideBars.texture.bind() cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.sidebars_vtx, colors=board_col, texcoords=self.board_tex) glDisable(GL_TEXTURE_2D) if shaders.enable("sololight"): shaders.modVar("color",shaders.var["solocolor"]) shaders.setVar("offset",(-3.5,-w/2)) cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.soloLightVtx1) shaders.setVar("offset",(-3.5,w/2)) shaders.setVar("time",shaders.time()+0.5) cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.soloLightVtx2) shaders.disable()
def renderNeck(self, visibility, song, pos): if not song: return if not song.readyToGo: return v = visibility offset = (pos - self.lastBpmChange) / self.currentPeriod + self.baseBeat #myfingershurt: every theme can have oNeck: if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 1: neck = self.soloNeck elif self.scoreMultiplier > 4 and self.bassGrooveNeck and self.bassGrooveNeckMode == 1: neck = self.bassGrooveNeck elif self.fourxNeckMode == 1 and self.fourMultiNeck and self.scoreMultiplier == 4: neck = self.fourMultiNeck elif self.instrument.starPowerActive and not (self.spcount2 != 0 and self.spcount < 1.2) and self.oNeck and self.scoreMultiplier <= 4 and not self.ovrneckoverlay: neck = self.oNeck else: neck = self.neckDrawing self.renderNeckMethod(v*self.neckAlpha[1], offset, neck) if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 2: #static overlay self.renderNeckMethod(v*self.neckAlpha[2], 0, self.soloNeck) if self.bgcount > 0 and self.bassGrooveNeck and self.bassGrooveNeckMode == 2: #static bass groove overlay self.renderNeckMethod(v*self.bgcount*self.neckAlpha[3], 0, self.bassGrooveNeck) if self.fourXcount > 0 and self.fourMultiNeck and self.fourxNeckMode == 2: #4x multi overlay neck self.renderNeckMethod(v*self.fourXcount*self.neckAlpha[6], offset, self.fourMultiNeck) if self.spcount2 != 0 and self.spcount < 1.2 and self.oNeck: #static overlay if self.oNeckovr and (self.scoreMultiplier > 4 or self.guitarSolo or self.ovrneckoverlay): neck = self.oNeckovr alpha = False else: neck = self.oNeck alpha = True self.renderNeckMethod(v*self.spcount*self.neckAlpha[4], offset, neck, alpha) if self.instrument.starPowerActive and not (self.spcount2 != 0 and self.spcount < 1.2) and self.oNeck and (self.scoreMultiplier > 4 or self.guitarSolo or self.ovrneckoverlay): #static overlay if self.oNeckovr: neck = self.oNeckovr alpha = False else: neck = self.oNeck alpha = True self.renderNeckMethod(v*self.neckAlpha[4], offset, neck, alpha) if shaders.enabled: shaders.globals["basspos"] = shaders.var["fret"][self.player][0] shaders.globals["notepos"] = shaders.var["fret"][self.player][1:] shaders.globals["bpm"] = self.instrument.currentBpm shaders.globals["songpos"] = pos shaders.globals["spEnabled"] = self.instrument.starPowerActive shaders.globals["isFailing"] = self.isFailing shaders.globals["isMultChanged"] = (shaders.var["scoreMult"][self.player] != self.scoreMultiplier) if shaders.globals["isMultChanged"]: shaders.var["multChangePos"][self.player] = pos shaders.globals["scoreMult"] = self.scoreMultiplier shaders.var["scoreMult"][self.player] = self.scoreMultiplier shaders.globals["isDrum"] = self.isDrum shaders.globals["soloActive"] = self.guitarSolo posx = shaders.time() neckcol = (0,0,0) notecolors = list(self.engine.theme.noteColors) if self.isDrum: notecolors[4] = notecolors[0] notecolors[0] = self.engine.theme.noteColors[5] for i in range(5): blend = max(shaders.var["fret"][self.player][i] - posx + 1.5,0.01) neckcol = mixColors(neckcol, notecolors[i], blend) shaders.var["color"][self.player]=neckcol if shaders.enable("neck"): shaders.setVar("fretcol",neckcol) shaders.update() cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.shader_neck_vtx) shaders.disable() else: if self.isFailing: self.renderNeckMethod(self.failcount, 0, self.failNeck) if (self.guitarSolo or self.instrument.starPowerActive) and self.theme == 1: shaders.var["solocolor"]=self.shaderSolocolor else: shaders.var["solocolor"]=(0.0,)*4
def renderNeck(self, visibility, song, pos): if not song: return if not song.readyToGo: return v = visibility offset = (pos - self.lastBpmChange) / self.currentPeriod + self.baseBeat #myfingershurt: every theme can have oNeck: if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 1: neck = self.soloNeck elif self.scoreMultiplier > 4 and self.bassGrooveNeck and self.bassGrooveNeckMode == 1: neck = self.bassGrooveNeck elif self.fourxNeckMode == 1 and self.fourMultiNeck and self.scoreMultiplier == 4: neck = self.fourMultiNeck elif self.instrument.starPowerActive and not ( self.spcount2 != 0 and self.spcount < 1.2 ) and self.oNeck and self.scoreMultiplier <= 4 and not self.ovrneckoverlay: neck = self.oNeck else: neck = self.neckDrawing self.renderNeckMethod(v * self.neckAlpha[1], offset, neck) if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 2: #static overlay self.renderNeckMethod(v * self.neckAlpha[2], 0, self.soloNeck) if self.bgcount > 0 and self.bassGrooveNeck and self.bassGrooveNeckMode == 2: #static bass groove overlay self.renderNeckMethod(v * self.bgcount * self.neckAlpha[3], 0, self.bassGrooveNeck) if self.fourXcount > 0 and self.fourMultiNeck and self.fourxNeckMode == 2: #4x multi overlay neck self.renderNeckMethod(v * self.fourXcount * self.neckAlpha[6], offset, self.fourMultiNeck) if self.spcount2 != 0 and self.spcount < 1.2 and self.oNeck: #static overlay if self.oNeckovr and (self.scoreMultiplier > 4 or self.guitarSolo or self.ovrneckoverlay): neck = self.oNeckovr alpha = False else: neck = self.oNeck alpha = True self.renderNeckMethod(v * self.spcount * self.neckAlpha[4], offset, neck, alpha) if self.instrument.starPowerActive and not ( self.spcount2 != 0 and self.spcount < 1.2) and self.oNeck and ( self.scoreMultiplier > 4 or self.guitarSolo or self.ovrneckoverlay): #static overlay if self.oNeckovr: neck = self.oNeckovr alpha = False else: neck = self.oNeck alpha = True self.renderNeckMethod(v * self.neckAlpha[4], offset, neck, alpha) if shaders.enabled: shaders.globals["basspos"] = shaders.var["fret"][self.player][0] shaders.globals["notepos"] = shaders.var["fret"][self.player][1:] shaders.globals["bpm"] = self.instrument.currentBpm shaders.globals["songpos"] = pos shaders.globals["spEnabled"] = self.instrument.starPowerActive shaders.globals["isFailing"] = self.isFailing shaders.globals["isMultChanged"] = ( shaders.var["scoreMult"][self.player] != self.scoreMultiplier) if shaders.globals["isMultChanged"]: shaders.var["multChangePos"][self.player] = pos shaders.globals["scoreMult"] = self.scoreMultiplier shaders.var["scoreMult"][self.player] = self.scoreMultiplier shaders.globals["isDrum"] = self.isDrum shaders.globals["soloActive"] = self.guitarSolo posx = shaders.time() neckcol = (0, 0, 0) notecolors = list(self.engine.theme.noteColors) if self.isDrum: notecolors[4] = notecolors[0] notecolors[0] = self.engine.theme.noteColors[5] for i in range(5): blend = max(shaders.var["fret"][self.player][i] - posx + 1.5, 0.01) neckcol = mixColors(neckcol, notecolors[i], blend) shaders.var["color"][self.player] = neckcol if shaders.enable("neck"): shaders.setVar("fretcol", neckcol) shaders.update() cmgl.drawArrays(GL_TRIANGLE_STRIP, vertices=self.shader_neck_vtx) shaders.disable() else: if self.isFailing: self.renderNeckMethod(self.failcount, 0, self.failNeck) if (self.guitarSolo or self.instrument.starPowerActive) and self.theme == 1: shaders.var["solocolor"] = self.shaderSolocolor else: shaders.var["solocolor"] = (0.0, ) * 4