Re: Why use OpenGL (was Native Mode Handling)

Brian Paul <brian-CdwZJljFklH+2FeEXyspIVaTQe2KTcn/@public.gmane.org>
Newsgroups gmane.comp.freedesktop.xserver
Organization Tungsten Graphics, Inc.
Message-ID <[email protected]>
Kendall Bennett wrote:
> Brian Paul <brian-CdwZJljFklH+2FeEXyspIVaTQe2KTcn/@public.gmane.org> wrote:
> 
> 
>>Sure, but we want to go beyond traditional 2D X server graphics.
> 
> 
> Ok.
> 
> 
>>>smaller than a complete OpenGL rendering pipeline. You don't need
>>>mip-mapping, multi-texturing, vertex shaders, pixel shaders, display
>>>lists, selection, picking, stencil buffers etc for a 2D window manager. 
>>
>>Actually, I can anticipate uses for multi-texture, mipmapping,
>>pixel shaders, etc. in the window system. 
> 
> 
> I can't think of any reasons myself, but then again I am sure people will 
> come up with stuff.
> 
> I guess my biggest concerns with this is:
> 
> 1. The memory overheads for the new system, but with machines that have 
> 128Meg+ of memory, I guess that is not a big deal. 
> 
> 2. The complexity of developing good 2D programs with OpenGL. Programming 
> in OpenGL has a higher learning curve than just a simple 2D rendering 
> API. 
> 
> Thinking about this some more it would seem to me that perhaps what you 
> need is to make sure there is always a good 2D API available that is 
> implemented in terms of 3D functionality. Make sure it is easy to use (or 
> backwards compatible at least), and make sure it can be done *fast*. Like 
> I mentioned before, bitmap support in OpenGL sucks -

Can you elaborate?  I've heard this said before, but I never see much 
in the way of concrete information.


> it would be nice to 
> define some extensions to better handle 2D bitmaps via the OpenGL drivers 
> so the 2D API's can interface more cleanly to the hardware in an 
> efficient manner.
> 
> One way of thinking about this is that as a 2D programmer, if I want to 
> draw a blended 2D bitmap, I don't want to have to set up a geometry 
> pipeline, load a texture map, bind the texture map, set up the 3D 
> rendering engine state and then finally draw some 3D triangles to get my 
> blended bitmap on the screen. Rather I just want to call something like 
> BlendBitmap() that will take my bitmap and blend it onto the screen. 
> Whether the internal implementaiton does all of the above is irrelevant, 
> so long as the 2D programmer does not have to deal with all the 3D cruft.

What's wrong with this:

glEnable(GL_BLEND);
glWindowPos2i(x,y);
glDrawPixels( my_image );

-Brian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.