Fiddling around with lighting and a Rendermanager

This commit is contained in:
steffen 2017-10-21 11:10:00 +02:00
parent 8dcc04b7b2
commit 8d7625a411
5 changed files with 88 additions and 22 deletions

View file

@ -21,18 +21,40 @@ class LightingManager:
self.Lights.remove(l)
class __Renderstep:
def __init__(self,program, vai):
self.program = program
self.vai = vai
def render(self, projMatrix, geometryRotMatrix):
pass
class __Structurestep(__Renderstep):
def __init__(self, alternateprogramdict, structure):
self.alternateprogramdict = alternateprogramdict
self.structure = structure
def __eq__(self, other):
if type(other) is type(self):
return self.program == other.program and self.vai == self.vai
return self.alternateprogramdict == other.alternateprogramdict and self.structure == self.structure
else:
return False
def render(self,projMatrix,geometryRotMatrix):
self.structure.render(projMatrix,geometryRotMatrix,self.alternateprogramdict)
class __Clearstep(__Renderstep):
def render(self, projMatrix, geometryRotMatrix):
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
def addRenderStep(self,program,vai):
r = self.__Renderstep(program,vai)
class __ActivateDepthmappingStep(__Renderstep):
def __init__(self,light):
self.light = light
def render(self, projMatrix, geometryRotMatrix):
self.light.prepareForDepthMapping()
class __DeactivateDepthmappingStep(__Renderstep):
def __init__(self, light):
self.light = light
def render(self, projMatrix, geometryRotMatrix):
self.light.finishDepthMapping()
def addRenderStep(self,alternateprogramdict,structure):
r = self.__Renderstep(alternateprogramdict,structure)
self.renderSteps.append(r)
def removeRenderStep(self,program,vai):
r = self.__Renderstep(program, vai)
def removeRenderStep(self,alternateprogramdict,structure):
r = self.__Renderstep(alternateprogramdict,structure)
self.renderSteps.remove(r)