[~]More fiddling aroudn with code, cleaning bits
[!]Make the viewport use the actual struct we have for it. Produces much cleaner code
[!]Make some of our blend modes code work more like daedulus, cleans the code up. Havent noticed any problems in the few select games ive tried
[!] Fix a problem i introduced, really need to more thorough testing of changes. This doesn't work exactly like the original code did, but hopefully it doesnt have the same repercussions