读书笔记《30天自制操作系统》day11
2012-12-17 14:49
501 查看
1. 窗口的绘制,与鼠标绘制类似
2. 显示
3. 避免产生闪烁,先将写入vram的内容保存到一个内存块中,所有更新信息将这个内存块修改之后再去更新vram。
void make_window8(unsigned char *buf, int xsize, int ysize, char *title) { static char closebtn[14][16] = {/*这是个叉*/ "OOOOOOOOOOOOOOO@", "OQQQQQQQQQQQQQ$@", "OQQQQQQQQQQQQQ$@", "OQQQ@@QQQQ@@QQ$@", "OQQQQ@@QQ@@QQQ$@", "OQQQQQ@@@@QQQQ$@", "OQQQQQQ@@QQQQQ$@", "OQQQQQ@@@@QQQQ$@", "OQQQQ@@QQ@@QQQ$@", "OQQQ@@QQQQ@@QQ$@", "OQQQQQQQQQQQQQ$@", "OQQQQQQQQQQQQQ$@", "O$$$$$$$$$$$$$$@", "@@@@@@@@@@@@@@@@" }; int x, y; char c; boxfill8(buf, xsize, COL8_C6C6C6, 0, 0, xsize - 1, 0 ); boxfill8(buf, xsize, COL8_FFFFFF, 1, 1, xsize - 2, 1 ); boxfill8(buf, xsize, COL8_C6C6C6, 0, 0, 0, ysize - 1); boxfill8(buf, xsize, COL8_FFFFFF, 1, 1, 1, ysize - 2); boxfill8(buf, xsize, COL8_848484, xsize - 2, 1, xsize - 2, ysize - 2); boxfill8(buf, xsize, COL8_000000, xsize - 1, 0, xsize - 1, ysize - 1); boxfill8(buf, xsize, COL8_C6C6C6, 2, 2, xsize - 3, ysize - 3); boxfill8(buf, xsize, COL8_000084, 3, 3, xsize - 4, 20 ); boxfill8(buf, xsize, COL8_848484, 1, ysize - 2, xsize - 2, ysize - 2); boxfill8(buf, xsize, COL8_000000, 0, ysize - 1, xsize - 1, ysize - 1); putfonts8_asc(buf, xsize, 24, 4, COL8_FFFFFF, title); for (y = 0; y < 14; y++) { for (x = 0; x < 16; x++) { c = closebtn[y][x]; if (c == '@') { c = COL8_000000; } else if (c == '$') { c = COL8_848484; } else if (c == 'Q') { c = COL8_C6C6C6; } else { c = COL8_FFFFFF; } buf[(5 + y) * xsize + (xsize - 21 + x)] = c; } } return; }
2. 显示
shtctl=shtctrl_init(memman,binfo->vram,binfo->scrnx,binfo->scrny);/*建图层管理对象*/ ... sht_win=sheet_alloc(shtctl);/*建图层*/ ... sheet_setbuf(sht_win,buf_win,160,52,-1);/*保存图层申请空间*/ ... make_window8(buf_win,160,52,"counter");/*创建窗口*/ putfonts8_asc(buf_win, 160, 24, 28, COL8_000000, "Welcome");/*窗口内容*/ .. sheet_slide(sht_win, 80, 72);/*移动窗口*/ ... sheet_updown(sht_win, 1);/*窗口为第二层,第一层为背景,第三层为鼠标*/
3. 避免产生闪烁,先将写入vram的内容保存到一个内存块中,所有更新信息将这个内存块修改之后再去更新vram。
相关文章推荐
- 读书笔记《30天自制操作系统》day11
- 《30天自制操作系统》读书笔记Day4
- 读书笔记《30天自制操作系统》day02
- 读书笔记《30天自制操作系统》day07
- 多定时器处理2(30天自制操作系统 -- 读书笔记)
- 读书笔记《30天自制操作系统》day04
- 读书笔记《30天自制操作系统》day08
- 读书笔记《30天自制操作系统》day09
- 读书笔记《30天自制操作系统》day10
- 多定时器处理3(30天自制操作系统 -- 读书笔记)
- 30天自制操作系统day11
- 读书笔记《30天自制操作系统》day12~day13
- 《30天自制操作系统》读书笔记(6) 鼠标键盘
- 《30天自制操作系统》读书笔记Day6
- 《30天自制操作系统》读书笔记Day9
- 读书笔记《30天自制操作系统》day05
- 《30天自制操作系统》读书笔记Day18
- 《30天自制操作系统》读书笔记(4) 绘图
- [读书笔记]30 天自制操作系统 day11 制作窗口
- 读书笔记《30天自制操作系统》day12~day13