2013-02-05 16:09:43 UTC
I do not know if you know it, but the modesetting is broken(not
implemented) for all modes above 0x105. Also there's some breakage in
the two 1024x786 modes. Is there a reason this is not done, or has just
no one bothered to write it?
If no one has bothered to write it, I'd like to volunteer, as I still
have some old VESA modesetting code on my disk.
This is what I'd like to do(besides modesetting itself):
needed interface changes in graph.h
All the pixel values have to be 32 bits now.
Functions dealing with pixels(colors) have to be changed...
The truecolor modes need at least 3 bytes/pixel
long is 32 bits in 16 bit and 32 bit models. Documentation does not
mention 64 bit...
use a typedef unsigned long _pixval?
_CurrColor has to be 32 bits
setcolor/getcolor need 32 bits(unsigned long?)
getpixel/setpixel.. anything that takes color values
Functions to convert rgb-values to pixel values
RGB modes need that..
unsigned long _m_pixel(unsigned char r,unsigned char g,unsigned char b);
void _x_pixel(unsigned char *r,unsigned char *g,unsigned char
*b,unsigned long pix);
Changes to the color #defines
They should work for rgb modes, too.
change the defines for _BLACK.. etc
to something like:
extern unsigned long _glcolors;
#define _BLACK (_glcolors)
with proper pixel values set when modesetting
There already is a extern long _VGA_Colours[ 16 ]; in globals.h
can it be used?
Will this do, is this possible?
It might break binary compatibility...