doc: document that ScreenRec->DestroyPixmap() shouldn't be called directly

Direct calls to ScreenRec->DestroyPixmap() is fragile and blocks cleaning up
the wrapping jungle, so use the proper dix function instead.

While this function originally wasn't made for that purpose (and so we have an
useless parameter here, and the naming isn't entirely correct), it's the best
effort we have right now, without breaking existing API: it's already exported
since long time, so drivers can be easily converted and still work with both
new and older Xserver ABI versions.

Retrospectively, this already should have been done 20 years ago.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1711>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-09-30 17:59:28 +02:00
parent 2e0c19b6d9
commit 984da40fbb

View File

@ -3057,6 +3057,14 @@ must deallocate the PixmapRec and all attached devPrivate blocks.
If successful, it returns TRUE.
See Xserver/fb/fbpixmap.c for the sample server implementation.</para>
<para>
Consumers should never ever call that proc directly, but call dixDestroyPixmap() instead.
</para>
<para>
If it's ever wrapped (by an extension), the wrapping handler must be written
in a way that it can always be called, even when the private structures are in
an half-initialized state (error pathes), so no extra unwrapping magic necessary.
</para>
<para>
<blockquote><programlisting>
Bool