18,7 → 18,7 |
|
#include <ll/i386/defs.h> |
|
#include <drivers/vga.h> |
#include <drivers/glib.h> |
#include <drivers/pclab.h> |
|
#include <math.h> |
38,8 → 38,6 |
#define WIDTH 640 |
#define HEIGHT 480 |
#define BYTES_PP 2 |
#define INITSTR G640x480x64K |
#define CARD SAVAGE |
|
unsigned long int PERIOD_CARRELLO = 10000; |
unsigned long int PERIOD_DISEGNA = 80000; |
77,7 → 75,7 |
OSMesaDestroyContext(ctx); |
free(buffers); |
|
vga_setmode(TEXT,CARD); |
grx_close(); |
|
sys_end(); |
|
308,7 → 306,7 |
sprintf(text,"Hard Task Draw PER:%6d us EX:%6d us",(int)PERIOD_DISEGNA,(int)disegna_TIME); |
grx_text(text,10,15,rgb16(0,0,255),rgb16(255,255,255)); |
|
copy_videomem_16to16(buffers,vbuf,count); |
memcpy(vbuf,buffers,count); |
|
task_endcycle(); |
|
321,31 → 319,22 |
|
} |
|
static void screen(int mode) |
static void screen() |
{ |
vga_modeinfo *minf; |
int mem; |
|
vga_setmode(mode,CARD); |
minf = vga_getmodeinfo(mode); |
if(! (minf->flags & CAPABLE_LINEAR)){ |
vga_setmode(TEXT,CARD); |
printk(KERN_INFO "The mode %d is not capable of linear\n",mode); |
return; |
extern DWORD flbaddr; |
|
/* graphic card Initialization */ |
if (grx_init() < 1) { |
sys_abort(1); |
} |
vga_setpage(0); |
if(vga_setlinearaddressing() == -1) { |
vga_setmode(TEXT,CARD); |
printk(KERN_INFO "Could not set linear addressing for mode %d\n",mode); |
return; |
|
if (grx_open(640, 480, 16) < 0) { |
cprintf("GRX Err\n"); |
sys_abort(1); |
} |
|
vbuf = (unsigned char *)flbaddr; |
|
mem = minf->linewidth*minf->height; |
|
vbuf = vga_getgraphmem(); |
printk(KERN_INFO "Memory mapped to %08x. Mode = %d.\n",(int) vbuf,mode); |
memset(vbuf,0,mem); |
|
} |
|
void waitenter() { |
437,12 → 426,12 |
|
init_motor(); |
|
screen(INITSTR); |
screen(); |
|
ctx = OSMesaCreateContext(OSMESA_RGB_565, NULL ); |
buffers = malloc(WIDTH * HEIGHT * 2); |
|
grx_setbuffer(buffers, WIDTH, HEIGHT); |
buffers = malloc(WIDTH*HEIGHT*BYTES_PP); |
|
OSMesaMakeCurrent(ctx, buffers, GL_UNSIGNED_SHORT_5_6_5, WIDTH, HEIGHT); |
|
init_gl(); |