/drivers/video/Gallium/targets/graw_kos/graw_kos.c |
---|
77,9 → 77,16 |
goto fail; |
screen = sw_screen_create(winsys); |
if (screen == NULL) |
goto fail; |
BeginDraw(); |
DrawWindow(x, y,width-1,height-1, |
NULL,0,0x41); |
EndDraw(); |
*handle = (void *)winsys; |
return (screen); |
fail: |
99,12 → 106,44 |
void |
graw_main_loop(void) |
{ |
for (;;) { |
int ev; |
oskey_t key; |
if (graw.draw) { |
BeginDraw(); |
DrawWindow(0,0,0,0, NULL, 0x000000,0x41); |
EndDraw(); |
if (graw.draw) |
{ |
graw.draw(); |
} |
delay(1); |
while(1) |
{ |
ev = wait_for_event(100); |
switch(ev) |
{ |
case 1: |
BeginDraw(); |
DrawWindow(0,0,0,0, NULL, 0x000000,0x41); |
EndDraw(); |
if (graw.draw) |
{ |
graw.draw(); |
} |
continue; |
case 2: |
key = get_key(); |
// printf("key %x\n", key.code); |
if( key.code == 0x1b) |
return; |
continue; |
default: |
continue; |
}; |
}; |
} |
/drivers/video/Gallium/targets/graw_kos/graw_util.c |
---|
8,7 → 8,6 |
#include "util/u_memory.h" |
#include "state_tracker/graw.h" |
#if 0 |
/* Helper functions. These are the same for all graw implementations. |
*/ |
PUBLIC void * |
55,7 → 54,6 |
state.tokens = tokens; |
return pipe->create_fs_state(pipe, &state); |
} |
#endif |
static char out_filename[256] = ""; |
/drivers/video/Gallium/winsys/sw/kos_sw_winsys.c |
---|
183,10 → 183,26 |
{ |
struct kos_sw_displaytarget *gdt = kos_sw_displaytarget(dt); |
// StretchDIBits(hDC, |
// 0, 0, gdt->width, gdt->height, |
// 0, 0, gdt->width, gdt->height, |
// gdt->data, &gdt->bmi, 0, SRCCOPY); |
struct blit_call bc; |
int ret; |
bc.dstx = 0; |
bc.dsty = 24; |
bc.w = gdt->width; |
bc.h = gdt->height; |
bc.srcx = 0; |
bc.srcy = 0; |
bc.srcw = gdt->width; |
bc.srch = gdt->height; |
bc.stride = gdt->stride; |
bc.bitmap = gdt->data; |
__asm__ __volatile__( |
"int $0x40":"=a"(ret):"a"(73), "b"(0x00), |
"c"(&bc):"memory"); |
return ret; |
} |
static void |