<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test/lib/libvgl, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/'/>
<updated>2019-12-11T17:37:53Z</updated>
<entry>
<title>Update Makefile.depend files</title>
<updated>2019-12-11T17:37:53Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2019-12-11T17:37:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2c9a9dfc187d171de6b92654d71b977f067ed641'/>
<id>urn:sha1:2c9a9dfc187d171de6b92654d71b977f067ed641</id>
<content type='text'>
Update a bunch of Makefile.depend files as
a result of adding Makefile.depend.options files

Reviewed by:	 bdrewery
MFC after:	1 week
Sponsored by:   Juniper Networks
Differential Revision:  https://reviews.freebsd.org/D22494
</content>
</entry>
<entry>
<title>Fix copying planar bitmaps when the horizontal start and end are both not</title>
<updated>2019-05-03T13:06:46Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-05-03T13:06:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=2f5cff37506aaa5d4ebf53560981899efadcc5e2'/>
<id>urn:sha1:2f5cff37506aaa5d4ebf53560981899efadcc5e2</id>
<content type='text'>
multiples of 8.  Then the misaligned pixels at the end were not copied.

Clean up variable misuse related to this bug.  The width in bytes was
first calculated correctly and used to do complicated reblocking
correctly, but it was stored in an unrelated scratch variable and later
recalculated with an off-by-1-error, so the last byte (times 4 planes)
in the intermediate copy was not copied.

This doubly-misaligned case is especially slow.  Misalignment complicates
the reblocking, and each misaligment requires a read before write, and this
read is still not done from the shadow buffer.
</content>
</entry>
<entry>
<title>Support all reasonable cursor sizes.  Reduce the size of the standard</title>
<updated>2019-04-29T16:26:29Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-29T16:26:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=34f210d8610b126bb3d5e37a408d9d5d2caf4136'/>
<id>urn:sha1:34f210d8610b126bb3d5e37a408d9d5d2caf4136</id>
<content type='text'>
cursor from 16x16 (with 6 columns unused) to 10x16 and rename it to
the "small" cursor.  Add a "large" 19x32 cursor and use it for screen
widths larger than 800 pixels.  Use libvgl's too-small indentation for
the large data declarations.

MOUSE_IMG_SIZE = 16 is still part of the API.  If an application supplies
invalid bitmaps for the cursor, then the results may be different from
before.
</content>
</entry>
<entry>
<title>Oops, r346889 broke showing of the mouse cursor after clearing, by</title>
<updated>2019-04-29T15:58:05Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-29T15:58:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=77073527cbbb601a55bbd3333165fed3bc045f31'/>
<id>urn:sha1:77073527cbbb601a55bbd3333165fed3bc045f31</id>
<content type='text'>
forgetting to tell the bitmap-copying clearing method to preserve the
cursor.
</content>
</entry>
<entry>
<title>Refactor and simplify hiding the mouse cursor and fix bugs caused by</title>
<updated>2019-04-29T14:13:53Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-29T14:13:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=c0ce6f7d91bee6ac83c799e4a5574bd340f37f67'/>
<id>urn:sha1:c0ce6f7d91bee6ac83c799e4a5574bd340f37f67</id>
<content type='text'>
complications in the previous methods.

r346761 broke showing the mouse cursor after changing its state from
off to on (including initially), since showing the cursor uses the
state to decide whether to actually show and the state variable was
not changed until after null showing.  Moving the mouse or copying
under the cursor fixed the problem.  Fix this and similar problems for
the on to off transition by changing the state variable before drawing
the cursor.

r346641 failed to turn off the mouse cursor on exit from vgl.  It hid
the cursor only temporarily for clearing.  This doesn't change the state
variable, so unhiding the cursor after clearing restored the cursor if its
state was on.  Fix this by changing its state to VGL_MOUSEHIDE using the
application API for changing the state.

Remove the VGLMouseVisible state variable and the extra states given by it.
This was an optimization that was just an obfuscation in at least the
previous version.

Staticize VGLMouseAction().  Remove VGLMousePointerShow/Hide() except as
internals in __VGLMouseMode().  __VGLMouseMouseMode() is the same as the
application API VGLMouseMouseMode() except it returns the previous mode
which callers need to know to restore it after hiding the cursor.

Use the refactoring to make minor improvements in a simpler way than was
possible:
- in VGLMouseAction(), only hide and and unhide the mouse cursor if the
  mouse moved
- in VGLClear(), only hide and and unhide the mouse cursor if the clearing
  method would otherwise clear the cursor.
</content>
</entry>
<entry>
<title>Use __VGLBitmapCopy() directly to show the mouse cursor.  The mouse</title>
<updated>2019-04-26T18:28:54Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-26T18:28:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=3b30feba4548f34e3676cb14601462dd97428960'/>
<id>urn:sha1:3b30feba4548f34e3676cb14601462dd97428960</id>
<content type='text'>
cursor must be merged with the shadow buffer on the way to the screen,
and __VGLBitmapCopy() now has an option to do exactly that.  This is
insignificantly less efficient.
</content>
</entry>
<entry>
<title>Merge __VGLGetXY() back into VGLGetXY().  They were split to simplify</title>
<updated>2019-04-26T16:38:23Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-26T16:38:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=d6003dd3d82a80fca6c350f0b6e5242a5ac94b18'/>
<id>urn:sha1:d6003dd3d82a80fca6c350f0b6e5242a5ac94b18</id>
<content type='text'>
the organization of fixes for the mouse cursor, but after optimizations
VGLGetXY() automatically avoids the mouse cursor.
</content>
</entry>
<entry>
<title>In VGLClear(), check for the overlap of the mouse cursor in the whole</title>
<updated>2019-04-26T16:14:23Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-26T16:14:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=5800d10f6a9185508a3e2a25f223515e212963b9'/>
<id>urn:sha1:5800d10f6a9185508a3e2a25f223515e212963b9</id>
<content type='text'>
display, not just in the unpanned top left corner.  This currently
makes no difference since the kernel erroneously doesn't allow moving
the cursor completely outside of the unpanned corner.
</content>
</entry>
<entry>
<title>Remove save/restore of the crtc and gdc registers when showing and</title>
<updated>2019-04-26T14:44:20Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-26T14:44:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=d05368940d86d3505b71a2a6689fc9cfeb95b617'/>
<id>urn:sha1:d05368940d86d3505b71a2a6689fc9cfeb95b617</id>
<content type='text'>
hiding the mouse cursor.  The showing and hiding is often done
asynchronously in a not very safe signal handler, but the state of
these registers and much more is protected from the signal handler
in a better way by deferring mouse signals while the state is in use.
</content>
</entry>
<entry>
<title>Fix the only known remaining (libvgl) bug for 24-bit modes, and enable</title>
<updated>2019-04-26T13:49:06Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>2019-04-26T13:49:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test/commit/?id=ea0a99050980bc03a41f85ba86712a773f9989c8'/>
<id>urn:sha1:ea0a99050980bc03a41f85ba86712a773f9989c8</id>
<content type='text'>
support for 24-bit modes.

The non-segmented case has worked for a long time, but the segmented
case could never have worked since 24-bit accesses may cross a window
boundary but the window was not changed in the middle of the specialized
24-bit accesses for writing a single pixel.
</content>
</entry>
</feed>
