The ProjectorFramePacker class is designed so that it does the work of frame packing behind the scenes and allows you to draw your stims as you normally would. Assuming that your DLP is also setup to split RGB frames into 3 frames, it should work out of the box.
After creating the ProjectorFramePacker instance, it shouldn't need any touching. Instead, flip your window normally.
mywin = visual.Window([912, 1140],
framePacker = ProjectorFramePacker(mywin)
photodiode = visual.Rect(win=mywin,
lineColor=[1, 1, 1],
fillColor = [1, 1, 1])
photodiode.contrast *= -1
Hopefully this works. Out of curiousity, what display are you using for the frame packing?