| 57 | |
| 58 | |
| 59 | def configure(self, id, shader): |
| 60 | self.shader = shader |
| 61 | #// TODO: Below code doesn't look good to me, |
| 62 | #// it assumes a specific shader naming and structure |
| 63 | #// Probably this implementation could be improved |
| 64 | self.enabledName = f"lights[{id}].enabled" |
| 65 | self.typeName = f"lights[{id}].type" |
| 66 | self.posName = f"lights[{id}].position" |
| 67 | self.targetName = f"lights[{id}].target" |
| 68 | self.colorName = f"lights[{id}].color" |
| 69 | |
| 70 | self.enabledLoc = rl.GetShaderLocation(shader, self.enabledName.encode('utf-8')) |
| 71 | self.typeLoc = rl.GetShaderLocation(shader, self.typeName.encode('utf-8')) |
| 72 | self.posLoc = rl.GetShaderLocation(shader, self.posName.encode('utf-8')) |
| 73 | self.targetLoc = rl.GetShaderLocation(shader, self.targetName.encode('utf-8')) |
| 74 | self.colorLoc = rl.GetShaderLocation(shader, self.colorName.encode('utf-8')) |
| 75 | |
| 76 | self.UpdateLightValues() |
| 77 | |
| 78 | |
| 79 | #// Send light properties to shader |