Not sure If I have to create a 1024x256 image if I want OpenGL to do the resizing.
That is a bit messy, slower than a simple copy of a continuous buffer area.
If it was only for
resizing or
color shifting or
clamping purposes, one wouldn't even think of a pixel shader for such low resolutions.
The point in having an
library or an
API providing a shader pipeline relies on all the subsequent
tortures you can apply to the frames, which can be fairly CPU-expensive.
Also, not sure how common the graphics-card support is for the non-power-of-two functions (cannot remember which one offhand).
By power-of-two, you're speaking about the graphic cards resolutions, right ?
Well, even if you have to deal with non-power-of-two dimensions, you'll do like anyone would do when compressing a video in a codec which doesn't support it : cropping or letterboxing. One given, one taken, we have to make compromises.
Another thing, developers are disappointed by low frame-rates.
Higher framerate ? To do what ? Some kind of
remote video recording ? One just have to buy a bigger SD card, or think about implementing a compatibility extension for SDHC up to 16GB then, cuz' the camera would do it just fine, in higher resolutions than the crappy viewport's 240 lines.
Or would it be to process it for vision ? An old PC's CPU wouldn't handle complex convolution processings without having to give the thread the
real-time priority. Thus bye-bye USB synchronicity !
Anyway, its obvious
l the old A-series USB peripheral won't handle higher bandwidths. Even with the padding bytes removed from the buffer, I don't think one can achieve more than 5fps anyway...with high hopes.
However, I do not have shader support on my old PC that I use, not sure how many people do.
Well, I bough this crappy mother board two or three years ago :
http://www.asrock.com/mb/overview.asp?model=p4vm900-sata2, brand new, for less than 50 bucks, shipping included..and guess what : the crappy integrated GPU it bears
handles Shaders 2.0. Just have a look at the specs.
So unless one's stingy enough (meaning
more than me) to hope manipulating the viewfinder's stream using a computer made of juice boxes and toothpicks (
but some expensive glue), he will eventually have to use (hear '
buy') a host machine who can deal with what he expects out of his Canon camera. At 2fps, at least.
However, doing the rendering in opengl or similar gives you a lot of flexibility, and performance for free. Opengl is also very portable.
Gosh, it's so portable I remember making in run on Pocket PCs ! (
<-- re-edit spoiler : IT WAS A TWEAK, don't get your hopes too high ! )
I'm just not sure about the way it handles native compilation of HLSL against hardware that actually handles shaders higher than 2.0. I'll have to read more about it, since I fear OpenGL may relies on software shading too often. It's my ignorance talking here. (
<-- PS : Neverming, OpenGL have those new "frame buffer objects" now... all's well)