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