Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
fyge_for_tb
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王剑峰
fyge_for_tb
Commits
916af005
Commit
916af005
authored
Apr 01, 2021
by
wjf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0.20
parent
8459ab26
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
73 additions
and
46 deletions
+73
-46
FYGE.d.ts
build/FYGE.d.ts
+8
-4
fyge.min.js
build/fyge.min.js
+1
-1
fyge.min.js.map
build/fyge.min.js.map
+1
-1
types.d.ts
build/types.d.ts
+8
-4
2d.html
examples/2d.html
+1
-1
package.json
package.json
+1
-1
record.txt
record.txt
+6
-1
const.ts
src/2d/const.ts
+1
-1
Graphics.ts
src/2d/graphics/Graphics.ts
+5
-5
Transform.ts
src/2d/math/Transform.ts
+10
-10
CanvasRenderer.ts
src/2d/renderers/CanvasRenderer.ts
+4
-4
toDisplayDataURL.ts
src/2d/utils/toDisplayDataURL.ts
+2
-0
Scene3D.ts
src/3d/Scene3D.ts
+25
-13
No files found.
build/FYGE.d.ts
View file @
916af005
...
@@ -597,11 +597,11 @@ export class Transform extends HashObject {
...
@@ -597,11 +597,11 @@ export class Transform extends HashObject {
*/
*/
localMatrix
:
Matrix
;
localMatrix
:
Matrix
;
/**
/**
* 记录
是否更新worldMatrix
* 记录
子级是否更新worldMatrix,需要保证子级修改设置_worldID++
*/
*/
_worldID
:
number
;
_worldID
:
number
;
/**
/**
* 记录是否和父级更新的_worldID一致
* 记录是否和父级更新的_worldID一致
,需要保证跟随父级修改设置_parentID=-1
*/
*/
_parentID
:
number
;
_parentID
:
number
;
/**
/**
...
@@ -630,7 +630,7 @@ export class Transform extends HashObject {
...
@@ -630,7 +630,7 @@ export class Transform extends HashObject {
_cy
:
number
;
_cy
:
number
;
_sy
:
number
;
_sy
:
number
;
/**
/**
* 记录的本地坐标id
* 记录的本地坐标id
;需要保证本地矩阵修改设置_localID++
*/
*/
_localID
:
number
;
_localID
:
number
;
/**
/**
...
@@ -9302,7 +9302,11 @@ export interface IntersectData {
...
@@ -9302,7 +9302,11 @@ export interface IntersectData {
}
}
export
class
Scene3D
extends
Object3D
{
export
class
Scene3D
extends
Object3D
{
private
_localID
;
private
_viewId
;
/**
* gl的视窗数据记录,是左下角开始,以防混淆不用Rectangle
*/
private
_viewport
;
private
_viewX
;
private
_viewX
;
get
viewX
():
number
;
get
viewX
():
number
;
set
viewX
(
value
:
number
);
set
viewX
(
value
:
number
);
...
...
build/fyge.min.js
View file @
916af005
This diff is collapsed.
Click to expand it.
build/fyge.min.js.map
View file @
916af005
This diff is collapsed.
Click to expand it.
build/types.d.ts
View file @
916af005
...
@@ -597,11 +597,11 @@ export class Transform extends HashObject {
...
@@ -597,11 +597,11 @@ export class Transform extends HashObject {
*/
*/
localMatrix
:
Matrix
;
localMatrix
:
Matrix
;
/**
/**
* 记录
是否更新worldMatrix
* 记录
子级是否更新worldMatrix,需要保证子级修改设置_worldID++
*/
*/
_worldID
:
number
;
_worldID
:
number
;
/**
/**
* 记录是否和父级更新的_worldID一致
* 记录是否和父级更新的_worldID一致
,需要保证跟随父级修改设置_parentID=-1
*/
*/
_parentID
:
number
;
_parentID
:
number
;
/**
/**
...
@@ -630,7 +630,7 @@ export class Transform extends HashObject {
...
@@ -630,7 +630,7 @@ export class Transform extends HashObject {
_cy
:
number
;
_cy
:
number
;
_sy
:
number
;
_sy
:
number
;
/**
/**
* 记录的本地坐标id
* 记录的本地坐标id
;需要保证本地矩阵修改设置_localID++
*/
*/
_localID
:
number
;
_localID
:
number
;
/**
/**
...
@@ -9302,7 +9302,11 @@ export interface IntersectData {
...
@@ -9302,7 +9302,11 @@ export interface IntersectData {
}
}
export
class
Scene3D
extends
Object3D
{
export
class
Scene3D
extends
Object3D
{
private
_localID
;
private
_viewId
;
/**
* gl的视窗数据记录,是左下角开始,以防混淆不用Rectangle
*/
private
_viewport
;
private
_viewX
;
private
_viewX
;
get
viewX
():
number
;
get
viewX
():
number
;
set
viewX
(
value
:
number
);
set
viewX
(
value
:
number
);
...
...
examples/2d.html
View file @
916af005
...
@@ -248,7 +248,7 @@
...
@@ -248,7 +248,7 @@
s
.
lineTo
(
10
,
10
);
s
.
lineTo
(
10
,
10
);
s
.
endStroke
()
s
.
endStroke
()
console
.
log
(
FYGE
.
toDisplayDataURL
(
stage
,
null
,{
type
:
"jpeg"
}))
//
console.log( FYGE.toDisplayDataURL(stage,null,{type: "jpeg"}))
},
this
);
},
this
);
//循环
//循环
...
...
package.json
View file @
916af005
{
{
"name"
:
"fyge"
,
"name"
:
"fyge"
,
"version"
:
"2.0.
19
"
,
"version"
:
"2.0.
20
"
,
"description"
:
"canvas渲染引擎"
,
"description"
:
"canvas渲染引擎"
,
"main"
:
"./build/fyge.min.js"
,
"main"
:
"./build/fyge.min.js"
,
"types"
:
"./build/types.d.ts"
,
"types"
:
"./build/types.d.ts"
,
...
...
record.txt
View file @
916af005
...
@@ -240,7 +240,6 @@
...
@@ -240,7 +240,6 @@
2.0.18 loadAtlas里的 createTexturesByAtlas trim的y轴偏移修改
2.0.18 loadAtlas里的 createTexturesByAtlas trim的y轴偏移修改
//还未pub
2.0.19 loadSpine修改,返回对象格式修改,包括动画数据,纹理数据,spine实例对象
2.0.19 loadSpine修改,返回对象格式修改,包括动画数据,纹理数据,spine实例对象
删除determineCrossOrigin文件
删除determineCrossOrigin文件
Bone计算时 noRotationOrReflection,scaleY乘上sy。负号
Bone计算时 noRotationOrReflection,scaleY乘上sy。负号
...
@@ -250,6 +249,12 @@
...
@@ -250,6 +249,12 @@
MovieClip里的init方法里添加移除所有子级,移除startAniRangeFun事件,
MovieClip里的init方法里添加移除所有子级,移除startAniRangeFun事件,
MovieClip添加静态方法deepCopyFrames
MovieClip添加静态方法deepCopyFrames
2.0.20 Graphics的_renderCanvas方法里去掉了this.parent判断,去掉执行updateTransform
Transform的updateWorldMatrix方法里去掉了==-1相关判断
CanvasRenderer的render方法两个事件名修改,还有带transform时_worldID=-1改为_worldID++;
toDisplayDataURL绘制完设置_parentID = -1;
Scene3D修改_localId为_viewId,记录_viewport
现在不改,索引数据过大时得用Uint32Array,同时开扩展gl.getExtension( "OES_element_index_uint" )和drawElements改参数类型为gl.UNSIGNED_INT
现在不改,索引数据过大时得用Uint32Array,同时开扩展gl.getExtension( "OES_element_index_uint" )和drawElements改参数类型为gl.UNSIGNED_INT
//现在不改,DisplayObject的getLocalBounds最后是否考虑计算一次updateTransform(不用计算自己的,为了计算子级的)
//现在不改,DisplayObject的getLocalBounds最后是否考虑计算一次updateTransform(不用计算自己的,为了计算子级的)
...
...
src/2d/const.ts
View file @
916af005
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
* @name VERSION
* @name VERSION
* @type {string}
* @type {string}
*/
*/
export
const
VERSION
=
"2.0.
19
"
;
export
const
VERSION
=
"2.0.
20
"
;
/**
/**
...
...
src/2d/graphics/Graphics.ts
View file @
916af005
...
@@ -1131,11 +1131,11 @@ export default class Graphics extends Container {
...
@@ -1131,11 +1131,11 @@ export default class Graphics extends Container {
this
.
alpha
=
tempAlpha
;
this
.
alpha
=
tempAlpha
;
this
.
cacheAsBitmap
=
true
;
this
.
cacheAsBitmap
=
true
;
this
.
children
=
tempChildren
;
//待测试,还原原先子级
this
.
children
=
tempChildren
;
//待测试,还原原先子级
if
(
this
.
parent
)
{
//
if (this.parent) {
//generateCanvasTexture里用canvasRenderer渲染会修改世界矩阵,保证自己能根据父级矩阵更新回来
//generateCanvasTexture里用canvasRenderer渲染会修改世界矩阵,保证自己能根据父级矩阵更新回来
this
.
transform
.
_parentID
=
-
1
;
this
.
transform
.
_parentID
=
-
1
;
this
.
updateTransform
();
//
this.updateTransform();
}
//
}
}
}
//普通画图的渲染,提供图片和图形的插件,先判断_anchorTexture,offsetX,0
//普通画图的渲染,提供图片和图形的插件,先判断_anchorTexture,offsetX,0
renderer
.
plugins
.
sprite
.
render
(
this
);
renderer
.
plugins
.
sprite
.
render
(
this
);
...
...
src/2d/math/Transform.ts
View file @
916af005
...
@@ -18,11 +18,11 @@ export default class Transform extends HashObject {
...
@@ -18,11 +18,11 @@ export default class Transform extends HashObject {
//约定,要更新时。父级的_worldID 和子级的_parentID不能同时设为-1;或者,只要都是-1就要更新
//约定,要更新时。父级的_worldID 和子级的_parentID不能同时设为-1;或者,只要都是-1就要更新
/**
/**
* 记录
是否更新worldMatrix
* 记录
子级是否更新worldMatrix,需要保证子级修改设置_worldID++
*/
*/
_worldID
:
number
;
_worldID
:
number
;
/**
/**
* 记录是否和父级更新的_worldID一致
* 记录是否和父级更新的_worldID一致
,需要保证跟随父级修改设置_parentID=-1
*/
*/
_parentID
:
number
;
_parentID
:
number
;
/**
/**
...
@@ -52,7 +52,7 @@ export default class Transform extends HashObject {
...
@@ -52,7 +52,7 @@ export default class Transform extends HashObject {
_sy
:
number
;
_sy
:
number
;
/**
/**
* 记录的本地坐标id
* 记录的本地坐标id
;需要保证本地矩阵修改设置_localID++
*/
*/
_localID
:
number
;
_localID
:
number
;
/**
/**
...
@@ -161,8 +161,8 @@ export default class Transform extends HashObject {
...
@@ -161,8 +161,8 @@ export default class Transform extends HashObject {
this
.
_parentID
=
-
1
;
this
.
_parentID
=
-
1
;
}
}
//判断是否和父级更新的_worldID一致,或者都为-1(防止都设为-1的情况)
//判断是否和父级更新的_worldID一致,或者都为-1(防止都设为-1的情况)
去掉-1判断后TODO待测试
if
(
this
.
_parentID
!==
parentTransform
.
_worldID
||
parentTransform
.
_worldID
==
-
1
)
{
if
(
this
.
_parentID
!==
parentTransform
.
_worldID
/*|| parentTransform._worldID == -1*/
)
{
// concat the parent matrix with the objects transform.
// concat the parent matrix with the objects transform.
const
pt
=
parentTransform
.
worldMatrix
;
const
pt
=
parentTransform
.
worldMatrix
;
const
wt
=
this
.
worldMatrix
;
const
wt
=
this
.
worldMatrix
;
...
@@ -174,11 +174,11 @@ export default class Transform extends HashObject {
...
@@ -174,11 +174,11 @@ export default class Transform extends HashObject {
wt
.
tx
=
(
lt
.
tx
*
pt
.
a
)
+
(
lt
.
ty
*
pt
.
c
)
+
pt
.
tx
;
wt
.
tx
=
(
lt
.
tx
*
pt
.
a
)
+
(
lt
.
ty
*
pt
.
c
)
+
pt
.
tx
;
wt
.
ty
=
(
lt
.
tx
*
pt
.
b
)
+
(
lt
.
ty
*
pt
.
d
)
+
pt
.
ty
;
wt
.
ty
=
(
lt
.
tx
*
pt
.
b
)
+
(
lt
.
ty
*
pt
.
d
)
+
pt
.
ty
;
if
(
parentTransform
.
_worldID
==
-
1
)
{
//
if (parentTransform._worldID == -1) {
this
.
_parentID
=
parentTransform
.
_worldID
=
0
;
//
this._parentID = parentTransform._worldID = 0;
}
else
{
//
} else {
this
.
_parentID
=
parentTransform
.
_worldID
//
this._parentID = parentTransform._worldID
}
//
}
//修改自身worldId,保证子级会更新
//修改自身worldId,保证子级会更新
this
.
_worldID
++
;
this
.
_worldID
++
;
...
...
src/2d/renderers/CanvasRenderer.ts
View file @
916af005
...
@@ -81,7 +81,7 @@ export class CanvasRenderer extends SystemRenderer {
...
@@ -81,7 +81,7 @@ export class CanvasRenderer extends SystemRenderer {
render
(
displayObject
:
DisplayObject
,
renderTexture
?:
any
/*RenderTexture*/
,
transform
?:
Matrix
)
{
render
(
displayObject
:
DisplayObject
,
renderTexture
?:
any
/*RenderTexture*/
,
transform
?:
Matrix
)
{
//渲染开始前触发
//渲染开始前触发
this
.
dispatchEvent
(
'
prer
ender'
);
this
.
dispatchEvent
(
'
onPreR
ender'
);
//是否渲染到主屏幕
//是否渲染到主屏幕
let
renderingToScreen
=
!
renderTexture
;
let
renderingToScreen
=
!
renderTexture
;
...
@@ -122,8 +122,8 @@ export class CanvasRenderer extends SystemRenderer {
...
@@ -122,8 +122,8 @@ export class CanvasRenderer extends SystemRenderer {
if
(
transform
)
{
if
(
transform
)
{
//有transform则复制
//有transform则复制
tempWt
.
copy
(
transform
);
tempWt
.
copy
(
transform
);
//标记要更新transform
//标记要更新transform
,确保子级会更新全局矩阵,(改成++)TODO待测试,Graphics和截图两个地方用到了transform
this
.
_tempDisplayObjectParent
.
transform
.
_worldID
=
-
1
;
this
.
_tempDisplayObjectParent
.
transform
.
_worldID
++
;
}
}
else
{
else
{
//没有就初始化
//没有就初始化
...
@@ -165,7 +165,7 @@ export class CanvasRenderer extends SystemRenderer {
...
@@ -165,7 +165,7 @@ export class CanvasRenderer extends SystemRenderer {
context
.
restore
();
context
.
restore
();
//渲染后触发
//渲染后触发
this
.
dispatchEvent
(
'
postr
ender'
);
this
.
dispatchEvent
(
'
onPostR
ender'
);
}
}
/**
/**
...
...
src/2d/utils/toDisplayDataURL.ts
View file @
916af005
...
@@ -65,6 +65,8 @@ export default function toDisplayDataURL(
...
@@ -65,6 +65,8 @@ export default function toDisplayDataURL(
tempMatrix
.
tx
-=
x
;
tempMatrix
.
tx
-=
x
;
tempMatrix
.
ty
-=
y
;
tempMatrix
.
ty
-=
y
;
_dRender
.
render
(
obj
,
null
,
tempMatrix
);
_dRender
.
render
(
obj
,
null
,
tempMatrix
);
//因为上面render会修改obj的全局矩阵,保证会被修改回去
obj
.
transform
.
_parentID
=
-
1
;
// document.body.appendChild(_canvasBuffer.baseTexture.source)
// document.body.appendChild(_canvasBuffer.baseTexture.source)
return
_dCanvas
.
toDataURL
(
"image/"
+
typeInfo
.
type
,
typeInfo
.
quality
);
return
_dCanvas
.
toDataURL
(
"image/"
+
typeInfo
.
type
,
typeInfo
.
quality
);
};
};
...
...
src/3d/Scene3D.ts
View file @
916af005
...
@@ -18,7 +18,11 @@ import { Raycaster } from "./Raycaster";
...
@@ -18,7 +18,11 @@ import { Raycaster } from "./Raycaster";
* 带透明度的融合有问题,尽量自行调整渲染顺序
* 带透明度的融合有问题,尽量自行调整渲染顺序
*/
*/
export
class
Scene3D
extends
Object3D
{
export
class
Scene3D
extends
Object3D
{
private
_localID
:
number
=
0
;
private
_viewId
:
number
=
0
;
/**
* gl的视窗数据记录,是左下角开始,以防混淆不用Rectangle
*/
private
_viewport
:
{
x
:
number
,
y
:
number
,
width
:
number
,
height
:
number
};
private
_viewX
:
number
=
0
;
private
_viewX
:
number
=
0
;
get
viewX
()
{
get
viewX
()
{
return
this
.
_viewX
;
return
this
.
_viewX
;
...
@@ -27,7 +31,7 @@ export class Scene3D extends Object3D {
...
@@ -27,7 +31,7 @@ export class Scene3D extends Object3D {
value
=
value
||
0
;
value
=
value
||
0
;
if
(
this
.
_viewX
===
value
)
return
;
if
(
this
.
_viewX
===
value
)
return
;
this
.
_viewX
=
value
;
this
.
_viewX
=
value
;
this
.
_
localID
=
-
1
;
this
.
_
viewId
=
-
1
;
}
}
private
_viewY
:
number
=
0
;
private
_viewY
:
number
=
0
;
get
viewY
()
{
get
viewY
()
{
...
@@ -37,7 +41,7 @@ export class Scene3D extends Object3D {
...
@@ -37,7 +41,7 @@ export class Scene3D extends Object3D {
value
=
value
||
0
;
value
=
value
||
0
;
if
(
this
.
_viewY
===
value
)
return
;
if
(
this
.
_viewY
===
value
)
return
;
this
.
_viewY
=
value
;
this
.
_viewY
=
value
;
this
.
_
localID
=
-
1
;
this
.
_
viewId
=
-
1
;
}
}
private
_viewWidth
:
number
=
300
;
private
_viewWidth
:
number
=
300
;
...
@@ -48,7 +52,7 @@ export class Scene3D extends Object3D {
...
@@ -48,7 +52,7 @@ export class Scene3D extends Object3D {
value
=
value
||
0
;
value
=
value
||
0
;
if
(
this
.
_viewWidth
===
value
)
return
;
if
(
this
.
_viewWidth
===
value
)
return
;
this
.
_viewWidth
=
value
;
this
.
_viewWidth
=
value
;
this
.
_
localID
=
-
1
;
this
.
_
viewId
=
-
1
;
}
}
private
_viewHeight
:
number
=
300
;
private
_viewHeight
:
number
=
300
;
get
viewHeight
()
{
get
viewHeight
()
{
...
@@ -58,7 +62,7 @@ export class Scene3D extends Object3D {
...
@@ -58,7 +62,7 @@ export class Scene3D extends Object3D {
value
=
value
||
0
;
value
=
value
||
0
;
if
(
this
.
_viewHeight
===
value
)
return
;
if
(
this
.
_viewHeight
===
value
)
return
;
this
.
_viewHeight
=
value
;
this
.
_viewHeight
=
value
;
this
.
_
localID
=
-
1
;
this
.
_
viewId
=
-
1
;
}
}
/**
/**
...
@@ -105,23 +109,31 @@ export class Scene3D extends Object3D {
...
@@ -105,23 +109,31 @@ export class Scene3D extends Object3D {
//自己的位置
//自己的位置
if
(
this
.
_localID
!==
this
.
parent
.
transform
.
_worldID
)
{
if
(
this
.
_viewId
!==
this
.
parent
.
transform
.
_worldID
)
{
this
.
_viewId
=
this
.
parent
.
transform
.
_worldID
;
var
pt
=
this
.
parent
.
transform
.
worldMatrix
;
var
pt
=
this
.
parent
.
transform
.
worldMatrix
;
var
x
=
(
this
.
viewX
*
pt
.
a
)
+
(
this
.
viewY
*
pt
.
c
)
+
pt
.
tx
;
var
x
=
(
this
.
viewX
*
pt
.
a
)
+
(
this
.
viewY
*
pt
.
c
)
+
pt
.
tx
;
var
y
=
(
this
.
viewX
*
pt
.
b
)
+
(
this
.
viewY
*
pt
.
d
)
+
pt
.
ty
;
var
y
=
(
this
.
viewX
*
pt
.
b
)
+
(
this
.
viewY
*
pt
.
d
)
+
pt
.
ty
;
//计算实际的viewWidth和viewHeight,简单点直接是父级的缩放,还是要全局的缩放,如果只在舞台
//计算实际的viewWidth和viewHeight,简单点直接是父级的缩放,还是要全局的缩放,如果只在舞台
var
scaleX
=
Math
.
sqrt
((
pt
.
a
*
pt
.
a
)
+
(
pt
.
b
*
pt
.
b
));
var
scaleX
=
Math
.
sqrt
((
pt
.
a
*
pt
.
a
)
+
(
pt
.
b
*
pt
.
b
));
var
scaleY
=
Math
.
sqrt
((
pt
.
c
*
pt
.
c
)
+
(
pt
.
d
*
pt
.
d
));
var
scaleY
=
Math
.
sqrt
((
pt
.
c
*
pt
.
c
)
+
(
pt
.
d
*
pt
.
d
));
//
每个场景
//
记录
renderer
.
gl
.
viewport
(
this
.
_viewport
=
{
x
,
x
,
renderer
.
height
-
y
-
this
.
viewHeight
*
scaleY
,
y
:
renderer
.
height
-
y
-
this
.
viewHeight
*
scaleY
,
this
.
viewWidth
*
scaleX
,
width
:
this
.
viewWidth
*
scaleX
,
this
.
viewHeight
*
scaleY
height
:
this
.
viewHeight
*
scaleY
)
}
}
}
//修改视窗,每次都要执行
this
.
_viewport
&&
renderer
.
gl
.
viewport
(
this
.
_viewport
.
x
,
this
.
_viewport
.
y
,
this
.
_viewport
.
width
,
this
.
_viewport
.
height
);
//处理子级东西
//处理子级东西
this
.
render
(
renderer
)
this
.
render
(
renderer
)
;
}
}
getLightConfig
(
getLightConfig
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment