[PATCH xserver] dix: Move {Change, Copy, Destroy}Clip from GCFuncs to Screen

Aaron Plattner aplattner at nvidia.com
Tue Mar 7 21:21:10 UTC 2017


On 03/02/2017 03:35 PM, Adam Jackson wrote:
> On Thu, 2017-03-02 at 13:20 -0800, Keith Packard wrote:
>>> Adam Jackson <ajax at redhat.com> writes:
>>> The "call down" convention would need to know to scan ahead to find
>>> the next non-null fptr for the slot either way, but that's not really
>>> different from the current model where some slots can be null at the
>>> bottom.
>>
>> Hence my hack of filling in the pointers between the slots which are in
>> use; you just call the one below 'your' entry.
> 
> That means you have to save "your" index for every slot though. Or rely
> on fptr equality I suppose, but that's not really different since you
> then have to write your own detangle code to find yourself in every
> slot. If your layer index is constant (until someone tries to wrap
> between you, which you can get notified of) then detangling yourself
> means passing your index to a common routine that nulls your column of
> the arrays for you.
> 
>>> So... seems plausible. Maybe try the experiment with GCOps first before
>>> blowing up the whole Screen?
>>
>> Seems reasonable. The hard part to me seems to be coming up with a
>> complete list of 'layers', or at least complete enough for a start. I
>> don't want to have to reallocate these on the fly...
> 
> I mean, I did grep for '\<GCFuncs\>' for a reason. Eight is enough.

We have a few of these layers. They're mostly pretty trivial, but here
be dragons.

They don't do anything interesting with {Change, Copy, Destroy}Clip, though.

> - ajax


More information about the xorg-devel mailing list