Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rcore-os
RCore Tutorial V3
提交
d5ccc3d7
R
RCore Tutorial V3
项目概览
rcore-os
/
RCore Tutorial V3
上一次同步 1 年多
通知
15
Star
793
Fork
260
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
RCore Tutorial V3
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d5ccc3d7
编写于
6月 22, 2022
作者:
chyyuu1972
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add const VIRTGPU_XRES, VIRTGPU_YRES in boards/qemu.rs for X*Y resolution in virtio_gpu
上级
136d475b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
13 addition
and
7 deletion
+13
-7
os/src/boards/qemu.rs
os/src/boards/qemu.rs
+3
-0
os/src/gui/graphic.rs
os/src/gui/graphic.rs
+3
-2
os/src/gui/icon.rs
os/src/gui/icon.rs
+2
-2
os/src/syscall/gui.rs
os/src/syscall/gui.rs
+5
-3
未找到文件。
os/src/boards/qemu.rs
浏览文件 @
d5ccc3d7
...
...
@@ -13,6 +13,9 @@ pub type CharDeviceImpl = crate::drivers::chardev::NS16550a<VIRT_UART>;
pub
const
VIRT_PLIC
:
usize
=
0xC00_0000
;
pub
const
VIRT_UART
:
usize
=
0x1000_0000
;
pub
const
VIRTGPU_XRES
:
u32
=
1280
;
pub
const
VIRTGPU_YRES
:
u32
=
800
;
use
crate
::
drivers
::
block
::
BLOCK_DEVICE
;
use
crate
::
drivers
::
chardev
::{
CharDevice
,
UART
};
use
crate
::
drivers
::
plic
::{
IntrTargetPriority
,
PLIC
};
...
...
os/src/gui/graphic.rs
浏览文件 @
d5ccc3d7
...
...
@@ -5,7 +5,8 @@ use embedded_graphics::{
prelude
::{
OriginDimensions
,
Point
,
RgbColor
,
Size
},
};
use
crate
::
drivers
::{
GPUDevice
,
GPU_DEVICE
};
use
crate
::
drivers
::{
GPUDevice
,
GPU_DEVICE
,};
use
crate
::
board
::{
VIRTGPU_XRES
,
VIRTGPU_YRES
};
#[derive(Clone)]
pub
struct
Graphics
{
...
...
@@ -42,7 +43,7 @@ impl DrawTarget for Graphics {
let
fb
=
self
.drv
.getfreambuffer
();
pixels
.into_iter
()
.for_each
(|
px
|
{
let
idx
=
((
self
.point.y
+
px
.0
.y
)
*
1280
+
self
.point.x
+
px
.0
.x
)
as
usize
*
4
;
let
idx
=
((
self
.point.y
+
px
.0
.y
)
*
VIRTGPU_XRES
as
i32
+
self
.point.x
+
px
.0
.x
)
as
usize
*
4
;
if
idx
+
2
>=
fb
.len
()
{
return
;
}
...
...
os/src/gui/icon.rs
浏览文件 @
d5ccc3d7
...
...
@@ -10,7 +10,7 @@ use embedded_graphics::{
use
tinybmp
::
Bmp
;
use
crate
::{
drivers
::
GPU_DEVICE
,
sync
::
UPIntrFreeCell
};
use
crate
::
board
::{
VIRTGPU_XRES
,
VIRTGPU_YRES
};
use
super
::{
Component
,
Graphics
,
ImageComp
};
static
FILEICON
:
&
[
u8
]
=
include_bytes!
(
"../assert/file.bmp"
);
...
...
@@ -32,7 +32,7 @@ impl IconController {
UPIntrFreeCell
::
new
(
IconControllerInner
{
files
,
graphic
:
Graphics
{
size
:
Size
::
new
(
1280
,
800
),
size
:
Size
::
new
(
VIRTGPU_XRES
,
VIRTGPU_YRES
),
point
:
Point
::
new
(
0
,
0
),
drv
:
GPU_DEVICE
.clone
(),
},
...
...
os/src/syscall/gui.rs
浏览文件 @
d5ccc3d7
...
...
@@ -10,11 +10,13 @@ use crate::{
sync
::
UPIntrFreeCell
,
};
use
crate
::
board
::{
VIRTGPU_XRES
,
VIRTGPU_YRES
};
static
DT
:
&
[
u8
]
=
include_bytes!
(
"../assert/desktop.bmp"
);
lazy_static
::
lazy_static!
(
pub
static
ref
DESKTOP
:
UPIntrFreeCell
<
Arc
<
dyn
Component
>>
=
unsafe
{
UPIntrFreeCell
::
new
(
Arc
::
new
(
Panel
::
new
(
Size
::
new
(
1280
,
800
),
Point
::
new
(
0
,
0
))))
UPIntrFreeCell
::
new
(
Arc
::
new
(
Panel
::
new
(
Size
::
new
(
VIRTGPU_XRES
,
VIRTGPU_YRES
),
Point
::
new
(
0
,
0
))))
};
pub
static
ref
PAD
:
UPIntrFreeCell
<
Option
<
Arc
<
Terminal
>>>
=
unsafe
{
UPIntrFreeCell
::
new
(
None
)
...
...
@@ -23,8 +25,8 @@ lazy_static::lazy_static!(
pub
fn
create_desktop
()
->
isize
{
let
mut
p
:
Arc
<
dyn
Component
+
'static
>
=
Arc
::
new
(
Panel
::
new
(
Size
::
new
(
1280
,
800
),
Point
::
new
(
0
,
0
)));
let
image
=
ImageComp
::
new
(
Size
::
new
(
1280
,
800
),
Point
::
new
(
0
,
0
),
DT
,
Some
(
p
.clone
()));
Arc
::
new
(
Panel
::
new
(
Size
::
new
(
VIRTGPU_XRES
,
VIRTGPU_YRES
),
Point
::
new
(
0
,
0
)));
let
image
=
ImageComp
::
new
(
Size
::
new
(
VIRTGPU_XRES
,
VIRTGPU_YRES
),
Point
::
new
(
0
,
0
),
DT
,
Some
(
p
.clone
()));
let
icon
=
IconController
::
new
(
ROOT_INODE
.ls
(),
Some
(
p
.clone
()));
p
.add
(
Arc
::
new
(
image
));
p
.add
(
Arc
::
new
(
icon
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录