So, I got myself a copy of Visual Studio 2012 Pro. It’s pretty nice, except for the shitty all-caps menus (which you can turn off with the registry hack located here). I really didn’t have any plans on moving Gorgon v2.x to .NET 4.5/VS2012 until I saw this:
Category Archives: Idiocy
The future.
I recently played around with my own library (see an earlier post about the sun effect) and I found it… well, lacking. In my day job I do a lot of framework/library code for re-use amongst my co-workers and I’ve learned a great deal over the last few years of doing that professionally. There’s a huge difference between writing a database/application framework and a graphics library, but, I’ve always been amazed how concepts from one architecture will map to another and as I developed Gorgon in my own time, I ported concepts to the framework code I write for my job and vice versa. One major difference is that our framework code at the office is always evolving from project to project (granted, the pace of evolution has slowed somewhat), while Gorgon was written, and aside from bug-fixes, it never evolved because I never really used it except to prototype small things from time to time. Until I wrote the Sun thingy….
Issue… where’s my tissue?
I became aware of an issue with the FromStream method on the Image object a few days after I posted the new installer. It’s been corrected and put in the SVN repository.
Please note that it is not included in the 1.1.4119.34319 installer, and won’t be until I release a new version. Sorry about that, but I’m a busy boy these days.
So, I’ve started to transition some things over to Facebook. This may not go over too well for some people, but life is hard, you’ll get used to it.
I’ve moved the screen shots over to it, and ported the important parts of the wiki to the notes section.
It’s not a replacement for the site as a whole, but for parts of it, it makes sense. The forums will stay in place, and the main page will stay in place as well, but the Wiki and the screen shots section are gone over to Facebook.
You may now commence with the “I HATES TEH FACEBOK PEAGES!!!” commentary…
Wiki
Spam bots
I’ve noticed a significant increase in spam bot registrations over the last few days. I’ve purged the accounts that I believe are bots, and added another step to the user registration to weed these bastards out.
If your account has been removed, and you’re a legitimate user, post a comment on this post and I’ll do what I can (or you can attempt to make another account).
Sorry for the inconvenience, but until we’re allowed to hunt down the people who make bots in a blood sport, this will have to do.
How to annoy me.
Just a quick notice. I think it’s great when I get questions about Gorgon. And I do my very best to answer what I can as accurately as I can.
However. I do NOT want questions about how to use libraries created by other groups/people. I have no problems explaining Gorgon’s inner workings for this purpose, but that’s as far as it goes. I won’t be transforming it into any other library, that’s your job. I am not tech support for any other library. If you want support for another graphics library go to their forums and ask the creators of that library. If they don’t support their stuff, then that’s tough, take it up with them through whatever means available to you.
Don’t take this as trying to be secretive/anti-competitive about Gorgon or its inner workings. If I wanted it to be secretive I wouldn’t have released it or the source for it.
End of Line.
Hate. VB. Hate. Database.
Work is overrated, I don’t recommend it.
I disabled comments because I’m just getting pummeled by spammers and no legitimate comments. So I say fuck it and fuck you spamming cocksuckers.
If you have an urgent need to discuss Gorgon or whatnot please use the forums.
Intel needs to STOP making video cards.
Because they’re TERRIBLE at it. Yesterday I got a bug report about Gorgon displaying nothing but corrupted garbage on an Intel 945 Express chipset. Of couse my alarm bells when off when I read the word “Intel” and I immediately set out to find someone else to confirm this. Of course, finding someone with these older chipsets is like trying to find gold in my toilet and thus I had no way to confirm or even know where to start.
That is, until today when I remember that the machines in the office all have onboard video in addition to having Radeons. I checked the computer next to me and lo and behold it had an Intel 82865 integrated nightmare. So I set it up for development with Gorgon and found the issue that was causing the corrupt graphics. Lo and fucking behold. It turns out to be, wait for it… a driver bug.
Here’s what went wrong:
My code creates one vertex buffer to display the sprites. It never, ever, ever, changes the structure of the buffer, nor does it have any other reason to re-create the buffer. All it does is modify the contents of the buffer. So with this in mind, I only call SetStreamSource once for the lifetime of the application (except in cases of a device reset) – this is a performance thing, while not terribly slow, it still helps speed things up a tiny bit.
So in my search to find what’s wrong I run the ball demo through PIX (which is godly) and get a snapshot of my vertex buffer in action. For my test I had set up 2 sprites, each using a different texture so it’ll force a flush of the renderer. Sprite 1 was sized 64×64, sprite 2 was 200×56. The first sprite was displayed in the upper left of the screen at (0, 0) and the 2nd was place at the lower right (600, 544). When viewing the contents of the vertex buffer when it was submitted to DrawIndexedPrimitive I saw this for the first sprite:
- Left, Top coordinates: 0, 0
- Right, Bottom coordinates: 64,64
That’s correct for the first sprite, but here’s what I got in the vertex buffer for the 2nd sprite:
- Left, Top coordinates: 0, 0
- Right, Bottom coordinates: 64,64
Clearly the second sprite is not writing to the buffer. But why? So on a hunch i found culprit: SetStreamSource. Like I said earlier, it’s only called once to bind the vertex buffer. So I set it to be called every frame and sure enough, the application worked.
Here’s why it’s Intel’s fault:
On some advice I ran the program with the reference rasterizer and using the debug runtimes (which I always check first anyway).
The reference rasterizer is the guide to indicate how D3D is SUPPOSED to behave. And when an app doesn’t behave the same way on the refrast as the hardware, then the drivers are in question.
Anyway, I was concerned that I was doing something wrong by only calling SetStreamSource once, even though it worked on just about -every- piece of hardware that I’ve been using. So I ran my original code through the refrast and sure enough – it worked. Thus, the intel driver is broken.
I think for any other projects that I publish (not including Gorgon since I’m already in too far), I won’t be supporting Intel’s buggy drivers.
Quicktime is a whore
Quicktime is garbage. It’s ugly, slow and useless. But more than that, it hijacks some file associates and MIME settings.
Tonight I spent about 2 hours trying to make Quicktime let go of the PNG MIME association. Why? Because every time I opened a PNG in IE7, the fucking thing would launch quicktime and use THAT to display the PNG. So, instead of ranting on further about how awful quicktime is, here’s how you cut that piece of shit off:
- Run regedit. Back up your registry – Be very careful about fucking with your registry, you can damage your install of Windows. No, I don’t take blame if you’re too dumb to be careful.
- In the following places: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\
Delete anything to do with png, you’ll see keys like image/png and image/x-png. Delete those. Quicktime has placed those keys there. Try out IE and see if you can display PNG files. If you can, we’re done. If not, see step 3. - HKEY_CLASSES_ROOT( and KEY_LOCAL_MACHINE\Software\Classes)\MIME\Database\Content Type\
Look for the following keys:image/png and image/x-png. Do not delete these keys.
In these keys you should have these two string values:
Name: “Extension”, Value: “.png”
Name: “Image Filter CLSID”, Value: “{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}”
Only those keys should be there, remove any extra keys. - For x64 users: Perform step 3 and include KEY_LOCAL_MACHINE\Wow6432Node\Software\Classes as well as the other two locations.
I hope this helps someone. Because, Christ, there’s next to NO info on how to fix this problem.
Blogs are for idiots.
And thus why I did this. Plus I’m wanting to move away from my gamedev journal, it’s… yeah, it’s just fucking bad.
So from here on, all Gorgon related announcements will appear here and my rants, which are just fucking awesome, will appear here as well. Any future projects will have announcements here as well.
So yeah, it’ll be updated every time a random random number generator in a random country returns 3.5322874. Which is quite often if you have a life expectency of 150,000 years +/- 2.125 years.