summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-29 01:51:16 +0200
committerMiguel <m.i@gmx.at>2018-09-29 01:51:16 +0200
commit34c4a90794e78b97e4bd24f09c457d5e171e53f4 (patch)
tree5e6b7c163fc0d95d7b4fcf4e8a26e53ec35d7ab3 /driver
parentbe3d9f2cf2a8cfe670eac6df255db55ff9205c49 (diff)
first prototype of compositing window manager
Diffstat (limited to 'driver')
-rw-r--r--driver/mouse.c10
-rw-r--r--driver/vesa.c9
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);