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
|
||||
|
||||
|
||||
call main_testing
|
||||
call main_loop
|
||||
.loops:
|
||||
hlt
|
||||
;jmp .loops
|
||||
jmp .loops
|
||||
|
||||
; --- Callbacks (Fonctions appelées par le moteur) ---
|
||||
on_click_quit:
|
||||
|
|
@ -122,9 +122,10 @@ on_click_hello:
|
|||
ret
|
||||
|
||||
|
||||
main_test:
|
||||
GFX RECTANGLE_FILL, 10,10,50,20, PATTERN_WHITE, 15, 0
|
||||
|
||||
|
||||
main_testing:
|
||||
GFX LINE,10,10,10,67, 15
|
||||
ret
|
||||
|
||||
%define .oldval word [bp-2]
|
||||
|
|
@ -137,14 +138,8 @@ main_loop:
|
|||
|
||||
push cs
|
||||
pop ds
|
||||
|
||||
DEBUG 1
|
||||
ISADBG ISA_LEFT, 1
|
||||
|
||||
; Init du système GUI
|
||||
call gui_init_system
|
||||
DEBUG 2
|
||||
ISADBG ISA_LEFT, 2
|
||||
|
||||
; --- CRÉATION DYNAMIQUE DES BOUTONS ---
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ pattern_8x8:
|
|||
dq 0x77DD77DD77DD77DD ; 4 : pattern_white_light (Majorité de 1 = Clair)
|
||||
dq 0xFFFFFFFFFFFFFFFF ; 5 : pattern_white (Tout à 1 = Blanc)
|
||||
|
||||
|
||||
%macro PATTERN_PTR 1
|
||||
mov ax, cs
|
||||
mov ds, ax
|
||||
|
|
|
|||
|
|
@ -990,22 +990,21 @@ cga_draw_rect:
|
|||
; cga_fill_rect
|
||||
; Dessine un rectangle plein
|
||||
; Entrée : x1, y1, x2, y2, pattern_offset (CS:Offset)
|
||||
; ------------------------------------------------------------
|
||||
%define .x1 word [bp+4]
|
||||
%define .y1 word [bp+6]
|
||||
%define .x2 word [bp+8]
|
||||
%define .y2 word [bp+10]
|
||||
%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:
|
||||
push bp
|
||||
mov bp, sp
|
||||
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
|
||||
push es
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
|||
; =============================================================================
|
||||
; Project : Custom BIOS / ROM
|
||||
; File : gui/draw.asm
|
||||
; File : gui/lib-draw.asm
|
||||
; Author : frater
|
||||
;
|
||||
; License : GNU General Public License v3.0 or later (GPL-3.0+)
|
||||
|
|
@ -114,7 +114,7 @@ draw_slider:
|
|||
mov .track_y2, dx
|
||||
|
||||
; 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
|
||||
|
||||
; 2. Calculer la taille du curseur (Thumb)
|
||||
|
|
@ -199,7 +199,7 @@ draw_slider:
|
|||
|
||||
.draw_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
|
||||
|
||||
; --- Grip Lines (3 lignes pour un look moderne) ---
|
||||
|
|
@ -307,12 +307,12 @@ draw_button:
|
|||
jmp .done
|
||||
|
||||
.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
|
||||
jmp .done
|
||||
|
||||
.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
|
||||
|
||||
.done:
|
||||
|
|
@ -336,14 +336,14 @@ draw_round_button:
|
|||
je .paint_hover
|
||||
|
||||
.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
|
||||
call draw_round_borders
|
||||
GFX TXT_MODE, GFX_TXT_BLACK_TRANSPARENT
|
||||
jmp .draw_text_now
|
||||
|
||||
.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_FILL, ax, bx, cx, dx, PATTERN_WHITE_LIGHT
|
||||
mov di, 0 ; Couleur Noire
|
||||
|
|
@ -352,7 +352,7 @@ draw_round_button:
|
|||
jmp .draw_text_now
|
||||
|
||||
.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
|
||||
call draw_round_borders
|
||||
GFX TXT_MODE, GFX_TXT_WHITE_TRANSPARENT
|
||||
|
|
@ -379,7 +379,7 @@ draw_round_borders:
|
|||
|
||||
draw_checkbox:
|
||||
; 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
|
||||
jne .no_hover
|
||||
|
|
@ -411,7 +411,7 @@ draw_checkbox:
|
|||
push dx
|
||||
|
||||
; 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
|
||||
|
||||
; Check if checked
|
||||
|
|
@ -449,8 +449,10 @@ draw_checkbox:
|
|||
inc bx
|
||||
|
||||
GFX GOTOXY, cx, bx
|
||||
GFX TXT_MODE, GFX_TXT_BLACK & GFX_TXT_TRANSPARENT_BKG
|
||||
mov dx, [gs:si + widget.text_seg]
|
||||
mov ax, [gs:si + widget.text_ofs]
|
||||
|
||||
GFX WRITE, dx, ax
|
||||
|
||||
ret
|
||||
|
|
@ -459,7 +461,7 @@ draw_checkbox:
|
|||
; dessine un label (texte simple)
|
||||
;
|
||||
draw_label:
|
||||
GFX TXT_MODE, GFX_TXT_BLACK_TRANSPARENT
|
||||
GFX TXT_MODE, GFX_TXT_WHITE & GFX_TXT_TRANSPARENT_BKG
|
||||
call draw_text
|
||||
ret
|
||||
|
||||
|
|
@ -498,6 +500,7 @@ draw_text:
|
|||
pop cx ; CX = X Final, BX = Y Final
|
||||
|
||||
GFX GOTOXY, cx, bx
|
||||
GFX TXT_MODE, GFX_TXT_WHITE & GFX_TXT_TRANSPARENT_BKG
|
||||
|
||||
mov dx, [gs:si + widget.text_seg]
|
||||
mov ax, [gs:si + widget.text_ofs]
|
||||
|
|
|
|||
Loading…
Reference in a new issue