There's an old card game I want, but it's been out of print for 15 years and currently going for >$1000 used. There are just 80 cards in the game, and I've got a friend who does own it.

My plan is just to scan the cards, print them two-sided, laminate them and cut them out with a knife. I could also get plastic pockets and print the front and back separately.

What are some common pitfalls in printing a card game, and what am I likely to have missed?

(Don't worry, of course I'll mail a fit donation to the manufacturers.)


Question: How detect which OpenGL texture formats are natively supported?
Answer: Generally most hardware doesn't suport 3-component texture formats so in this specific example you can make a reasonably safe assumption that it's converted.  A 3-component OpenGL texture is actually 4-component in hardware but with the alpha component ignored/set to 255/whatever.

http://www.opengl.org/wiki/Common_Mistakes#Texture_upload_and_pixel_reads
(That "common mistakes" page is a goldmine - bookmark it now!)

For a more general case, glTexSubImage2D performance can give you a good indication of whether or not the upload must go through a software conversion path.  You'd go about this during program startup - just create an empty texture (via glTexImage2D with NULL data), then issue a bunch of glTexSubImage2D calls, each followed by a glFinish to ensure it completes.  Ignore the first one because caches/states/etc are being setup for it, and time the rest of them.  Repeat this for a few different formats and pick the fastest.

Another alternative - seeing as you've tagged this question "Windows" - is to create a D3D device at startup (just after you've created your window but before you init OpenGL) then use D3D to check for format support.  While OpenGL allows for software conversion to a valid internal format, D3D doesn't - if it's not supported by the hardware you can't do it.  Then destroy D3D and bring up OpenGL.  (This technique can also be used for querying other stuff that OpenGL doesn't let you query directly).

It's actually a useful rule of thumb to cross-check what you're doing in OpenGL with the D3D documentation.  If D3D can't do something then it can be a good indication that the something in question is not supported in hardware.  Not always true, but a useful starting place.