# Known GRX problems and things that must be improved

## General:

- The memory driver allocates all planes in one chunk instead of using real planes.

- Printing in 1200dpi on Laserjet supporting PCL6 doesn't work.

## Linux console framebuffer driver:

- Try to change modes if the underlaying framebuffer driver allow it.

- Complete the alternate direct mouse driver (now it only handles PS/2 mouses) to have a svgalib free GRX.

- When in graphics mode, the virtual console switching is disabled by default, so some code is necesary to enable it.

- Only 15, 16 and 24bpp framedrivers are provided.

## Win32 driver:

- There is a general design problem. The video driver is initiated at the begining instead when the user program call GrSetDriver (usually indirectly by calling GrSetMode), this makes difficult the use the memory driver.

- Logical operations for 8 bpp are wrong implemented, they must operate with color indices instead of colors.

- Drawline must paint the last point (not trivial).

- Add support for all logical operations in drawpixel, drawblock and putscanline.

- Implement getiscanline for 8 and 24 bpp.

- Implement bltv2r for 24 bpp.

- The printing code doesn't work correctly.

## X11 driver:

- Investigate why bccbgi test program doesn't restart when it switchs to text mode.

- Try to make GrPixel faster.

- The driver can't respond to PAINT events, so it has problems with XFree86 v4 because the backing-store is not enabled by default. The best solution is to have a context to save the actual window (and the GrPixel problem can be solved too). Te workaround is to add next lines to the /etc/X11/XF86Config-4 file, in the Device section:

  Option "BackingStore"

  Option "SaveUnders"

## SVGALIB driver:

- The mouse jumps more than one pixel.

## VGA DOS driver:

- It can be improved a lot, replacing the generic funtions it uses.
- BitBlt to screen doens't work in 4bpp modes if the screen is not set as the default context.