diff options
Diffstat (limited to 'driver')
| -rw-r--r-- | driver/mouse.c | 10 | ||||
| -rw-r--r-- | driver/vesa.c | 9 |
2 files changed, 12 insertions, 7 deletions
diff --git a/driver/mouse.c b/driver/mouse.c index 0485096..d0f1591 100644 --- a/driver/mouse.c +++ b/driver/mouse.c @@ -3,6 +3,7 @@ #include "mouse.h" #include "ringbuffer.h" +#include "compositor.h" #include "interrupts.h" #include "kernel/kernel.h" #include "log.h" @@ -145,13 +146,10 @@ void mouse_action() if(mouse_x<0)mouse_x=0; if(mouse_y<0)mouse_y=0; - if(mouse_x>800)mouse_x=800; - if(mouse_y>600)mouse_y=600; + if(mouse_x>=1920)mouse_x=1920-1; + if(mouse_y>=1080)mouse_y=1080-1; - //klog("%d / %d / %02x ",mouse_x, mouse_y,mouse_byte[2]); - if (mouse_byte[0] & 1)vesa_put_rect(mouse_x,600-mouse_y,10,10,0x00ffff); - //else vesa_put_rect(mouse_x,600-mouse_y,10,10,0x0000ff); - PutFont('X', mouse_x,600-mouse_y, 0xff0000,0); + compositor_mouse_handle(mouse_x,1080-mouse_y, mouse_byte[0]); } diff --git a/driver/vesa.c b/driver/vesa.c index 848b0bf..7405422 100644 --- a/driver/vesa.c +++ b/driver/vesa.c @@ -137,6 +137,13 @@ uint32_t vesa_init(multiboot_information *inf, foolfont *rawfont) vesaBpp=inf->framebuffer_bpp; vesaAddr=inf->framebuffer_addr; + // virtual screen + vesaXres=640; + vesaYres=480; + vesaPitch=640*4; + vesaBpp=32; + vesaAddr=VMEM_USER_FRAMEBUFFER; + //the only functionallu important init lines! (rest is log) //VbeModeInfoBlock=mode; deffont=rawfont; @@ -193,7 +200,7 @@ void PutPixel(int x,int y, int color) if (x) x = (x*(vesaBpp>>3)); // get bytes (divide by 8) if (y) y = (y*vesaPitch); //uint8_t *cTemp=VbeModeInfoBlock->physbase; - uint8_t *cTemp=VMEM_FRAMEBUFFER; + uint8_t *cTemp=VMEM_USER_FRAMEBUFFER; cTemp[x+y] = (uint8_t)(color & 0xff); cTemp[x+y+1] = (uint8_t)((color>>8) & 0xff); |
