Drivers VGA OK
This commit is contained in:
parent
d2fb28b29c
commit
a72c7fe731
5 changed files with 850 additions and 183 deletions
|
|
@ -107,10 +107,10 @@ entrycode:
|
||||||
GFX MOUSE_SHOW
|
GFX MOUSE_SHOW
|
||||||
|
|
||||||
|
|
||||||
call main_testing
|
call main_loop
|
||||||
.loops:
|
.loops:
|
||||||
hlt
|
hlt
|
||||||
;jmp .loops
|
jmp .loops
|
||||||
|
|
||||||
; --- Callbacks (Fonctions appelées par le moteur) ---
|
; --- Callbacks (Fonctions appelées par le moteur) ---
|
||||||
on_click_quit:
|
on_click_quit:
|
||||||
|
|
@ -122,9 +122,10 @@ on_click_hello:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
main_test:
|
||||||
|
GFX RECTANGLE_FILL, 10,10,50,20, PATTERN_WHITE, 15, 0
|
||||||
|
|
||||||
|
|
||||||
main_testing:
|
|
||||||
GFX LINE,10,10,10,67, 15
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
%define .oldval word [bp-2]
|
%define .oldval word [bp-2]
|
||||||
|
|
@ -137,14 +138,8 @@ main_loop:
|
||||||
|
|
||||||
push cs
|
push cs
|
||||||
pop ds
|
pop ds
|
||||||
|
|
||||||
DEBUG 1
|
|
||||||
ISADBG ISA_LEFT, 1
|
|
||||||
|
|
||||||
; Init du système GUI
|
; Init du système GUI
|
||||||
call gui_init_system
|
call gui_init_system
|
||||||
DEBUG 2
|
|
||||||
ISADBG ISA_LEFT, 2
|
|
||||||
|
|
||||||
; --- CRÉATION DYNAMIQUE DES BOUTONS ---
|
; --- CRÉATION DYNAMIQUE DES BOUTONS ---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ pattern_8x8:
|
||||||
dq 0x77DD77DD77DD77DD ; 4 : pattern_white_light (Majorité de 1 = Clair)
|
dq 0x77DD77DD77DD77DD ; 4 : pattern_white_light (Majorité de 1 = Clair)
|
||||||
dq 0xFFFFFFFFFFFFFFFF ; 5 : pattern_white (Tout à 1 = Blanc)
|
dq 0xFFFFFFFFFFFFFFFF ; 5 : pattern_white (Tout à 1 = Blanc)
|
||||||
|
|
||||||
|
|
||||||
%macro PATTERN_PTR 1
|
%macro PATTERN_PTR 1
|
||||||
mov ax, cs
|
mov ax, cs
|
||||||
mov ds, ax
|
mov ds, ax
|
||||||
|
|
|
||||||
|
|
@ -990,22 +990,21 @@ cga_draw_rect:
|
||||||
; cga_fill_rect
|
; cga_fill_rect
|
||||||
; Dessine un rectangle plein
|
; Dessine un rectangle plein
|
||||||
; Entrée : x1, y1, x2, y2, pattern_offset (CS:Offset)
|
; Entrée : x1, y1, x2, y2, pattern_offset (CS:Offset)
|
||||||
; ------------------------------------------------------------
|
|
||||||
%define .x1 word [bp+4]
|
%define .x1 word [bp+4]
|
||||||
%define .y1 word [bp+6]
|
%define .y1 word [bp+6]
|
||||||
%define .x2 word [bp+8]
|
%define .x2 word [bp+8]
|
||||||
%define .y2 word [bp+10]
|
%define .y2 word [bp+10]
|
||||||
%define .pat_id word [bp+12]
|
%define .pat_id word [bp+12]
|
||||||
|
; ------------------------------------------------------------
|
||||||
; Variable locale pour l'index du motif (y % 8)
|
|
||||||
%define .pat_idx word [bp-2]
|
|
||||||
%define .x_end_idx word [bp-4]
|
|
||||||
%define .pattern_offset word [bp-6]
|
|
||||||
|
|
||||||
cga_fill_rect:
|
cga_fill_rect:
|
||||||
push bp
|
push bp
|
||||||
mov bp, sp
|
mov bp, sp
|
||||||
sub sp, 6 ; Reserve espace pour .pat_idx et .x_end_idx
|
sub sp, 6 ; Reserve espace pour .pat_idx et .x_end_idx
|
||||||
|
; Variable locale pour l'index du motif (y % 8)
|
||||||
|
%define .pat_idx word [bp-2]
|
||||||
|
%define .x_end_idx word [bp-4]
|
||||||
|
%define .pattern_offset word [bp-6]
|
||||||
|
|
||||||
pusha
|
pusha
|
||||||
push es
|
push es
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
; Project : Custom BIOS / ROM
|
; Project : Custom BIOS / ROM
|
||||||
; File : gui/draw.asm
|
; File : gui/lib-draw.asm
|
||||||
; Author : frater
|
; Author : frater
|
||||||
;
|
;
|
||||||
; License : GNU General Public License v3.0 or later (GPL-3.0+)
|
; License : GNU General Public License v3.0 or later (GPL-3.0+)
|
||||||
|
|
@ -114,7 +114,7 @@ draw_slider:
|
||||||
mov .track_y2, dx
|
mov .track_y2, dx
|
||||||
|
|
||||||
; 1. Dessiner la piste (Track)
|
; 1. Dessiner la piste (Track)
|
||||||
GFX RECTANGLE_FILL, .track_x1, .track_y1, .track_x2, .track_y2, PATTERN_WHITE_LIGHT
|
GFX RECTANGLE_FILL, .track_x1, .track_y1, .track_x2, .track_y2, PATTERN_WHITE_LIGHT, 15, 0
|
||||||
GFX RECTANGLE, .track_x1, .track_y1, .track_x2, .track_y2, 0
|
GFX RECTANGLE, .track_x1, .track_y1, .track_x2, .track_y2, 0
|
||||||
|
|
||||||
; 2. Calculer la taille du curseur (Thumb)
|
; 2. Calculer la taille du curseur (Thumb)
|
||||||
|
|
@ -199,7 +199,7 @@ draw_slider:
|
||||||
|
|
||||||
.draw_thumb:
|
.draw_thumb:
|
||||||
; 3. Dessiner le curseur (Thumb)
|
; 3. Dessiner le curseur (Thumb)
|
||||||
GFX RECTANGLE_FILL, .thumb_x1, .thumb_y1, .thumb_x2, .thumb_y2, PATTERN_WHITE
|
GFX RECTANGLE_FILL, .thumb_x1, .thumb_y1, .thumb_x2, .thumb_y2, PATTERN_WHITE, 15, 0
|
||||||
GFX RECTANGLE, .thumb_x1, .thumb_y1, .thumb_x2, .thumb_y2, 0
|
GFX RECTANGLE, .thumb_x1, .thumb_y1, .thumb_x2, .thumb_y2, 0
|
||||||
|
|
||||||
; --- Grip Lines (3 lignes pour un look moderne) ---
|
; --- Grip Lines (3 lignes pour un look moderne) ---
|
||||||
|
|
@ -307,12 +307,12 @@ draw_button:
|
||||||
jmp .done
|
jmp .done
|
||||||
|
|
||||||
.paint_hover:
|
.paint_hover:
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE_LIGHT
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE_LIGHT, 15, 0
|
||||||
GFX RECTANGLE, ax, bx, cx, dx, 0
|
GFX RECTANGLE, ax, bx, cx, dx, 0
|
||||||
jmp .done
|
jmp .done
|
||||||
|
|
||||||
.paint_pressed:
|
.paint_pressed:
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_BLACK
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_BLACK, 15, 0
|
||||||
GFX TXT_MODE, GFX_TXT_WHITE_TRANSPARENT
|
GFX TXT_MODE, GFX_TXT_WHITE_TRANSPARENT
|
||||||
|
|
||||||
.done:
|
.done:
|
||||||
|
|
@ -336,14 +336,14 @@ draw_round_button:
|
||||||
je .paint_hover
|
je .paint_hover
|
||||||
|
|
||||||
.paint_normal:
|
.paint_normal:
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE, 15, 0
|
||||||
mov di, 0 ; Couleur Noire
|
mov di, 0 ; Couleur Noire
|
||||||
call draw_round_borders
|
call draw_round_borders
|
||||||
GFX TXT_MODE, GFX_TXT_BLACK_TRANSPARENT
|
GFX TXT_MODE, GFX_TXT_BLACK_TRANSPARENT
|
||||||
jmp .draw_text_now
|
jmp .draw_text_now
|
||||||
|
|
||||||
.paint_hover:
|
.paint_hover:
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE, 15, 0
|
||||||
GFX RECTANGLE_ROUND, ax, bx, cx, dx, 0
|
GFX RECTANGLE_ROUND, ax, bx, cx, dx, 0
|
||||||
; GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE_LIGHT
|
; GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE_LIGHT
|
||||||
mov di, 0 ; Couleur Noire
|
mov di, 0 ; Couleur Noire
|
||||||
|
|
@ -352,7 +352,7 @@ draw_round_button:
|
||||||
jmp .draw_text_now
|
jmp .draw_text_now
|
||||||
|
|
||||||
.paint_pressed:
|
.paint_pressed:
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_BLACK
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_BLACK, 15, 0
|
||||||
mov di, 1 ; Bordure Blanche sur fond noir
|
mov di, 1 ; Bordure Blanche sur fond noir
|
||||||
call draw_round_borders
|
call draw_round_borders
|
||||||
GFX TXT_MODE, GFX_TXT_WHITE_TRANSPARENT
|
GFX TXT_MODE, GFX_TXT_WHITE_TRANSPARENT
|
||||||
|
|
@ -379,7 +379,7 @@ draw_round_borders:
|
||||||
|
|
||||||
draw_checkbox:
|
draw_checkbox:
|
||||||
; met un "fond" blanc
|
; met un "fond" blanc
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE, 15, 0
|
||||||
|
|
||||||
cmp byte [gs:si + widget.state], GUI_STATE_HOVER
|
cmp byte [gs:si + widget.state], GUI_STATE_HOVER
|
||||||
jne .no_hover
|
jne .no_hover
|
||||||
|
|
@ -411,7 +411,7 @@ draw_checkbox:
|
||||||
push dx
|
push dx
|
||||||
|
|
||||||
; Fond blanc + Bordure noire
|
; Fond blanc + Bordure noire
|
||||||
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE
|
GFX RECTANGLE_FILL, ax, bx, cx, dx, PATTERN_WHITE, 15, 0
|
||||||
GFX RECTANGLE, ax, bx, cx, dx, 0
|
GFX RECTANGLE, ax, bx, cx, dx, 0
|
||||||
|
|
||||||
; Check if checked
|
; Check if checked
|
||||||
|
|
@ -449,8 +449,10 @@ draw_checkbox:
|
||||||
inc bx
|
inc bx
|
||||||
|
|
||||||
GFX GOTOXY, cx, bx
|
GFX GOTOXY, cx, bx
|
||||||
|
GFX TXT_MODE, GFX_TXT_BLACK & GFX_TXT_TRANSPARENT_BKG
|
||||||
mov dx, [gs:si + widget.text_seg]
|
mov dx, [gs:si + widget.text_seg]
|
||||||
mov ax, [gs:si + widget.text_ofs]
|
mov ax, [gs:si + widget.text_ofs]
|
||||||
|
|
||||||
GFX WRITE, dx, ax
|
GFX WRITE, dx, ax
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
@ -459,7 +461,7 @@ draw_checkbox:
|
||||||
; dessine un label (texte simple)
|
; dessine un label (texte simple)
|
||||||
;
|
;
|
||||||
draw_label:
|
draw_label:
|
||||||
GFX TXT_MODE, GFX_TXT_BLACK_TRANSPARENT
|
GFX TXT_MODE, GFX_TXT_WHITE & GFX_TXT_TRANSPARENT_BKG
|
||||||
call draw_text
|
call draw_text
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
@ -498,6 +500,7 @@ draw_text:
|
||||||
pop cx ; CX = X Final, BX = Y Final
|
pop cx ; CX = X Final, BX = Y Final
|
||||||
|
|
||||||
GFX GOTOXY, cx, bx
|
GFX GOTOXY, cx, bx
|
||||||
|
GFX TXT_MODE, GFX_TXT_WHITE & GFX_TXT_TRANSPARENT_BKG
|
||||||
|
|
||||||
mov dx, [gs:si + widget.text_seg]
|
mov dx, [gs:si + widget.text_seg]
|
||||||
mov ax, [gs:si + widget.text_ofs]
|
mov ax, [gs:si + widget.text_ofs]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue