From: James C G. <jge...@ro...> - 2007-08-12 18:44:17
|
On Sun, 2007-12-08 at 19:09 +0200, Roland Scheidegger wrote: > Yes, though it still requires user interaction to switch the behaviour - > and few people actually seem to know about driconf, distros don't > install it by default etc :-(. > I don't think there were really any arguments against it, probably just > noone bothered to actually implement it (which should be fairly trivial). > As for the hw which can't do GL_CLAMP, I'm actually not sure if an > option is really needed. Both possible behaviours (unless you'd want to > implement correct behaviour somehow) look equally wrong to me, and just > because a conformance test thinks one is more acceptable than the other > doesn't really mean anything as both are violating the spec (and thus > the conformance test should probably really say both aren't right). So > why don't just change it to the behaviour which fixes some old broken apps. > > Roland Assuming that you're right about both mappings being equally wrong, I'd say that argues in favour of a driconf option instead of picking one and hardcoding it. I'd want the implementation to be written to spec, regardless of what it breaks, and then if someone wants behaviour that violates the spec, they would have to explicitly request it. I suppose a driconf option with three choices: - spec - map to GL_CLAMP_TO_EDGE - map to GL_CLAMP_TO_BORDER would do the job. I suppose that for hardware that doesn't implement GL_CLAMP, that would mean coding a slow software fallback that renders to spec. As an aside, I'm looking at the 1.4 programming guide (4th ed.), on page 418, section "Repeating and Clamping Textures", where it describes the tiling effects. I read it like this: GL_NEAREST ==> GL_CLAMP = GL_CLAMP_TO_EDGE GL_LINEAR ==> GL_CLAMP = GL_CLAMP_TO_BORDER Did I interpret it right? Oh yeah, I actually tried to implement a driconf option for this once, but I couldn't get enough of a grip on the code organization to figure out where to make the change. I suppose I could give it another shot. Can someone point me to the right place in the code? |