Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
a72131a5
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a72131a5
编写于
9月 21, 2017
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Only paint the dirty image data rectangle (#34170)
上级
253d255f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
5 deletion
+28
-5
src/vs/editor/browser/viewParts/minimap/minimap.ts
src/vs/editor/browser/viewParts/minimap/minimap.ts
+28
-5
未找到文件。
src/vs/editor/browser/viewParts/minimap/minimap.ts
浏览文件 @
a72131a5
...
...
@@ -709,7 +709,7 @@ export class Minimap extends ViewPart {
const
imageData
=
this
.
_getBuffer
();
// Render untouched lines by using last rendered data.
let
needed
=
Minimap
.
_renderUntouchedLines
(
let
[
_dirtyY1
,
_dirtyY2
,
needed
]
=
Minimap
.
_renderUntouchedLines
(
imageData
,
startLineNumber
,
endLineNumber
,
...
...
@@ -744,9 +744,13 @@ export class Minimap extends ViewPart {
dy
+=
minimapLineHeight
;
}
const
dirtyY1
=
(
_dirtyY1
===
-
1
?
0
:
_dirtyY1
);
const
dirtyY2
=
(
_dirtyY2
===
-
1
?
imageData
.
height
:
_dirtyY2
);
const
dirtyHeight
=
dirtyY2
-
dirtyY1
;
// Finally, paint to the canvas
const
ctx
=
this
.
_canvas
.
domNode
.
getContext
(
'
2d
'
);
ctx
.
putImageData
(
imageData
,
0
,
0
);
ctx
.
putImageData
(
imageData
,
0
,
0
,
0
,
dirtyY1
,
imageData
.
width
,
dirtyHeight
);
// Save rendered data for reuse on next frame if possible
return
new
RenderData
(
...
...
@@ -762,14 +766,14 @@ export class Minimap extends ViewPart {
endLineNumber
:
number
,
minimapLineHeight
:
number
,
lastRenderData
:
RenderData
,
):
boolean
[
]
{
):
[
number
,
number
,
boolean
[]
]
{
let
needed
:
boolean
[]
=
[];
if
(
!
lastRenderData
)
{
for
(
let
i
=
0
,
len
=
endLineNumber
-
startLineNumber
+
1
;
i
<
len
;
i
++
)
{
needed
[
i
]
=
true
;
}
return
needed
;
return
[
-
1
,
-
1
,
needed
]
;
}
const
_lastData
=
lastRenderData
.
_get
();
...
...
@@ -780,6 +784,10 @@ export class Minimap extends ViewPart {
const
WIDTH
=
target
.
width
;
const
targetData
=
target
.
data
;
const
maxDestPixel
=
(
endLineNumber
-
startLineNumber
+
1
)
*
minimapLineHeight
*
WIDTH
*
4
;
let
dirtyPixel1
=
-
1
;
// the pixel offset up to which all the data is equal to the prev frame
let
dirtyPixel2
=
-
1
;
// the pixel offset after which all the data is equal to the prev frame
let
copySourceStart
=
-
1
;
let
copySourceEnd
=
-
1
;
let
copyDestStart
=
-
1
;
...
...
@@ -810,6 +818,12 @@ export class Minimap extends ViewPart {
if
(
copySourceStart
!==
-
1
)
{
// flush existing copy request
targetData
.
set
(
lastTargetData
.
subarray
(
copySourceStart
,
copySourceEnd
),
copyDestStart
);
if
(
dirtyPixel1
===
-
1
&&
copySourceStart
===
0
&&
copySourceStart
===
copyDestStart
)
{
dirtyPixel1
=
copySourceEnd
;
}
if
(
dirtyPixel2
===
-
1
&&
copySourceEnd
===
maxDestPixel
&&
copySourceStart
===
copyDestStart
)
{
dirtyPixel2
=
copySourceStart
;
}
}
copySourceStart
=
sourceStart
;
copySourceEnd
=
sourceEnd
;
...
...
@@ -824,9 +838,18 @@ export class Minimap extends ViewPart {
if
(
copySourceStart
!==
-
1
)
{
// flush existing copy request
targetData
.
set
(
lastTargetData
.
subarray
(
copySourceStart
,
copySourceEnd
),
copyDestStart
);
if
(
dirtyPixel1
===
-
1
&&
copySourceStart
===
0
&&
copySourceStart
===
copyDestStart
)
{
dirtyPixel1
=
copySourceEnd
;
}
if
(
dirtyPixel2
===
-
1
&&
copySourceEnd
===
maxDestPixel
&&
copySourceStart
===
copyDestStart
)
{
dirtyPixel2
=
copySourceStart
;
}
}
return
needed
;
const
dirtyY1
=
(
dirtyPixel1
===
-
1
?
-
1
:
dirtyPixel1
/
(
WIDTH
*
4
));
const
dirtyY2
=
(
dirtyPixel2
===
-
1
?
-
1
:
dirtyPixel2
/
(
WIDTH
*
4
));
return
[
dirtyY1
,
dirtyY2
,
needed
];
}
private
static
_renderLine
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录