Browsed by
Author: slynch@puredevsoftware.com

Visual Studio Solution-Wide Defines

Visual Studio Solution-Wide Defines

Sometimes it’s useful to have a define that is set on the solution and applied to all projects in that solution. For example, you might have a define for enabling run-time checks which you don’t normally want enabled in a project, but you do want it enabled when the project is included in a test harness solution. So, assume we have a define called ENABLE_RUNTIME_CHECKS in MyProject which we only want enabled in our project when it is included in…

Read More Read More

Texture Coordinates – D3D vs. OpenGL

Texture Coordinates – D3D vs. OpenGL

I recently had to remind myself how texture coordinates work in D3D and OpenGL. It’s actually pretty simple, but I found a lot of conflicting advice out there. Some people say UV coordinates are handled differently in OpenGL and D3D, some say they are the same. Some say you need to vertically flip your textures when they are loaded. The problem is that the advice often works even if the explanation is incorrect. There are two things to consider: Which…

Read More Read More

Text Encoding

Text Encoding

Many programmers get by without having to worry about text encodings at all. Text is just a sequence of chars right? Chars are just numbers that map to letters, numbers and symbols. To save text to a file you just write out a sequence of chars, or let whatever API you are using handle the encode/decode. It’s not until you start supporting multiple languages, or come across a file in a weird format that you have to understand what encodings…

Read More Read More

.NET Image DPI Scaling Problems

.NET Image DPI Scaling Problems

Today I noticed that the buttons in my Windows forms app were being scaled. As you can see from the image below there is a ghosting around the edges of the lines which isn’t in the original image. I eventually tracked this down to DPI scaling issues. I’m drawing the image using DrawImage: System.Windows.Forms.Graphics.DrawImage The graphics object has a correct DPI of 96, but the image DPI isĀ 95.91039. This incorrect DPI value is what is causing the scaling. e.Graphics.DpiY =…

Read More Read More