Re: [clutter] gnome-shell / mutter / ARB_texture_rectangle



On Thu, 2008-11-06 at 10:04 +0000, Matthew Allum wrote:
> Hi;
> 
> On Wed, 2008-11-05 at 13:03 -0500, Owen Taylor wrote:
> > > 
> > > I think making it usage explicit and contained like this is really the
> > > only way to go in we do bring back in support for ARB_texture_rectangle
> > > without a lot of complexity and other pain elsewhere. 
> > > 
> > > Re devel branch - I dont see why this could not end up in the stable
> > > branch of which we are already having to track pretty much with mutter.
> > 
> > My initial expectation was that there would be significant code churn
> > and API changes, but looking at it, the "remove texture_rectangle
> > support" patch is a lot smaller than I expected and doesn't look to hard
> > or intrusive to reintroduce. 
> 
> Right, it should hopefully be pretty strait forward - all Id request is
> that we then something like a
> cogl_enable_legacy_texture_rectangle(boolean) which enables this old
> logic in texture creation and is well documented as to potential
> downsides it introduces into apps enabling it.

Ewww. :-)

I guess my feeling is that a cogl API addition is a cogl API addition,
and that doing something entirely hacky doesn't make it less of an
addition.

To avoid API additions I first thought:

 - Could this be done entirely within cogl with an environment variable?

   Unfortunately no: the cogl_texture code doesn't have enough context
   to distinguish random textures from texture_from_pixmap textures, 
   so the environment variable reading has to be done 

 - Can it be done as a private clutter => cogl API in an not-installed
   header file?
 
   Unfortunately no: to do the multi-texturing that MutterShapedTexture
   uses to shape the window, the shape texture needs to be a 
   texture_rectangle if the pixmap texture is a texture_rectangle.

What about, in my patch, changing COGL_TEXTURE_ALLOW_RECTANGLE
to COGL_TEXTURE_ALLOW_RECTANGLE COGL_TEXTURE_ALLOW_LEGACY_RECTANGLE
and adding a scary warning like:

  GL_ARB_texture_rectangle rectangle has numerous limitations,
  including no repeats, and no mipmapping. It also requires incompatible
  texture coordinate in custom shaders. Future versions of Clutter
  will remove GL_ARB_texture_rectangle support entirely. 

? But if you want to go with your approach, sure, I can do that.
I'd need to also add:
cogl_force_legacy_texture_rectangle(boolean), because there are cases
where NPOT textures look like they are there but don't work properly.

- Owen




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]