Hi! I will use this post for all the questions I receive by mail on GapiDraw. Thanks to Sam Nova for his extensive feedback.
(Q) I am planning this great game. Can you allow me to use GapiDraw commercially?
(A) I will only grant permission if you have a running version of your game ready. I will not authorize planned projects. Using GapiDraw commercially will not cost you anything, but you will need my permission before using it. I will however grant all projects the rights to use GapiDraw, so you will never be at the point where you have a finished game and I will not grant it. But you have to have a running version.
(Q) I like GapiDraw, but how do I know that you will keep supporting it in the future?
(A) GapiDraw is used at the University where I teach, and the M.Sc. students starting in my class this autumn will be using GapiDraw for the next 1.5 years or so. This is a better guarantee than most companies can offer.
(Q) How come you relase GapiDraw for free? Can I donate anything for it?
(A) In Sweden where I live we have to pay ~70% taxes on all sales and donations (sales taxation, social fees, 50% personal taxation, ++). This is amongst the largest taxations in the world, making it virtually impossible to earn anything from product sales. Use the product, be happy, and feel free to send me an email if you like it.
(Q) 320x240 on stationary computers is not so "hot". Can you add more modes?
(A) Yes. More modes for stationary computers will be added as an option to CGapiDisplay::OpenDisplay.
(Q) Can you adjust the size of the display window so it runs in landscape mode when "windowed"?
(A) Yes. I can see a need for this in several game types, so it will be added in a future update. Note however that DirectDraw performance when windowed is extremely limited compared to the full screen modes.
(Q) Do you support (or plan to add) direct access to stylus information, or should this continue to go through Windows?
(A) The best way to control mouse/pen input on the Pocket PC is to start a separate thread for all pen input, so that the update speed of the pen will not be affected by game FPS performance. It requires a bit more logic in the implementation (syncing direct cursor update on the display with the flip), but results in a greatly improved "feeling" of the game. Integrating keyboard/mouse action into the engine can be a restriction, especially for the more advanced game developers.
(Q) Ok, so I want to use a real-time mouse cursor. But direct display access is disabled in Windows 2000/XP using GapiDraw.
(A) Since I did not have time to evaluate the performance hit for enabling locks on the primary surface in DirectDraw, I disabled direct screen writes to the display. Direct Screen Access could however easily be enabled, and will most probably be so in the next release.
(Q) Do you support HP 525 (256 color mode), iPAQ 3110 (16 grayscale) and other none standard devices?
(A) It does work on the IPAQ 3130 using the TBones GAPI (see URL in the post below). Otherwise GapiDraw will only work on 16-bit displays.
(Q) Any plans about releasing a static linking library ?
(Q) Why did you use a linked list with SetPixels?
(A) An array compatible version of SetPixels() will be added in GapiDraw 1.1. Please see the 1.1 feature list posted in the forum.
(Q) Any plans for supporting anti-aliasing lines and pixels?
(A) Yes. Different line types and widths are planned as well.