package X11::Xlib::Opaque;
use X11::Xlib ();

# All modules in dist share a version
BEGIN { our $VERSION= $X11::Xlib::VERSION; }

@X11::Xlib::Visual::ISA= ( __PACKAGE__ );
@X11::Xlib::GC::ISA= ( __PACKAGE__ );

1;
__END__

=head1 NAME

X11::Xlib::Opaque - Base class for X11 opaque structures

=head1 DESCRIPTION

Base class for the various hidden C-structs of Xlib, which are represented
as a blessed opaque perl scalar, or blessed perl Hashref with the pointer
tucked away in XS magic.

=head1 ATTRIBUTES

=head2 display

Find the display associated with this object.  This may return undef if the
opaque object was constructed from a source where the Display was unknown.
(for example, accessing the L<X11::Xlib::XVisualInfo/visual> when that struct
itself doesn't have a known Display.

(all display references are stored in a private hashref in X11::Xlib package
 namespace, keyed by L<refaddr|Scalar::Util/refaddr>.
 All objects with a display attached in that
 manner should have a DESTROY that removes the reference.)

=head2 pointer_bytes

Return the raw pointer as a string of bytes (i.e. length 8 for 64-bit)

=head2 pointer_int

Return the raw pointer value as an integer

=head1 AUTHOR

Olivier Thauvin, E<lt>nanardon@nanardon.zarb.orgE<gt>

Michael Conrad, E<lt>mike@nrdvana.netE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2009-2010 by Olivier Thauvin

Copyright (C) 2017 by Michael Conrad

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.0 or,
at your option, any later version of Perl 5 you may have available.

=cut
