[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OpenGL question
You could always allocate yourself an OpenGL texture and write to the
textures
pixels before rendering it to the screen.
Checkout the tutorials at
http://nehe.gamedev.net
There are a lot of examples of using textures.
steve
----- Original Message -----
From: "Stephen J Baker" <sjbaker@link.com>
To: <linuxgames@sunsite.dk>
Sent: Tuesday, February 11, 2003 12:58 PM
Subject: Re: OpenGL question
> On Tue, 11 Feb 2003 voidstar@tin.it wrote:
>
> > does anybody knows if and how can I do a thing like
> > this in OpenGL?
> >
> > unsigned char* pA000 = vga_getgraphmem();
> > pA000[pos] = color;
>
> You can't (nor are you ever likely to be able to).
>
> There are multiple problems with such a thing:
>
> 1) The graphics card is HEAVILY pipelined during OpenGL
> operations - when you draw a polygon, it may not appear
> on the screen until several milliseconds later. If you
> could just do raw screen accesses, who knows what partial
> junk you'd read.
>
> 2) There is no guarantee that there *are* any pixels laid
> out simply in memory. The if you are doing FSAA with the
> nVidia GeForce cards (for example), they are rending to a
> multi-sample buffer with up to four RGB samples per pixel.
> The new GeForceFX (if it ever appears) aparrently adaptively
> stores either whole pixels or partial sub-pixels depending
> on whether the pixel lies on the edge of a polygon or not.
>
> 3) What about windows that are partially overlaid by other
> windows?
>
> Basically, this has not been possible since maybe the second generation
> of 3D graphics cards - and it's NEVER likely to be possible again.
>
> The simplistic idea that one memory-location == one pixel == one
> spot on the display is no longer valid with windowing systems,
> 3D and antialiasing.
>
> > With svgalib i can do this, but in OpenGL? Is there
> > a way to access the screen like an array (not only 320x200,
> > but also 640x480, etc.)
>
> No...nor should there be. Raw screen access died a couple of
> generations of hardware ago - and I didn't shed a tear to see it
> go!
>
> I would lay very good odds that whatever it is that you are
> trying to do with raw screen access could be done more efficiently
> using the OpenGL API.
>
> ----
> Steve Baker (817)619-2657 (Vox/Vox-Mail)
> L3Com/Link Simulation & Training (817)619-2466 (Fax)
> Work: sjbaker@link.com http://www.link.com
> Home: sjbaker1@airmail.net http://www.sjbaker.org
>