@galacean/engine-core 0.0.0-experimental-2.0-game.8 → 0.0.0-experimental-2.0-game.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +118 -24
- package/dist/main.js.map +1 -1
- package/dist/module.js +118 -24
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/2d/text/TextRenderer.d.ts +19 -2
- package/types/input/pointer/Pointer.d.ts +2 -0
- package/types/input/pointer/PointerEventData.d.ts +5 -0
- package/types/input/pointer/emitter/PointerEventEmitter.d.ts +1 -1
package/dist/main.js
CHANGED
|
@@ -1935,7 +1935,7 @@ SystemInfo._initialize();
|
|
|
1935
1935
|
_inherits(FontAtlas, ReferResource);
|
|
1936
1936
|
function FontAtlas(engine) {
|
|
1937
1937
|
var _this;
|
|
1938
|
-
_this = ReferResource.call(this, engine) || this, _this._charInfoMap = {}, _this._space =
|
|
1938
|
+
_this = ReferResource.call(this, engine) || this, _this._charInfoMap = {}, _this._space = 4, _this._curX = 4, _this._curY = 4, _this._nextY = 4;
|
|
1939
1939
|
_this.isGCIgnored = true;
|
|
1940
1940
|
var format = engine._hardwareRenderer.isWebGL2 ? TextureFormat.R8 : TextureFormat.Alpha8;
|
|
1941
1941
|
var texture = new Texture2D(engine, 512, 512, format, false);
|
|
@@ -9683,6 +9683,28 @@ Shader._shaderMap = Object.create(null);
|
|
|
9683
9683
|
// Order: cheap reference checks → mask state → tag lookup (rare opt-out)
|
|
9684
9684
|
return preElement.subChunk.chunk === curElement.subChunk.chunk && preElement.texture === curElement.texture && preElement.material === curElement.material && maskInteraction === renderer.maskInteraction && (maskInteraction === SpriteMaskInteraction.None || preRenderer.maskLayer === renderer.maskLayer) && curElement.subShader.passes[0].getTagValue(VertexMergeBatcher._disableBatchTag) !== true;
|
|
9685
9685
|
};
|
|
9686
|
+
/**
|
|
9687
|
+
* Text-specific batch check: extends sprite check with outline parity.
|
|
9688
|
+
* Different outlineWidth or outlineColor must split into separate draw calls,
|
|
9689
|
+
* because outline uniforms are shared per draw call.
|
|
9690
|
+
*/ VertexMergeBatcher.canBatchText = function canBatchText(preElement, curElement) {
|
|
9691
|
+
if (!VertexMergeBatcher.canBatchSprite(preElement, curElement)) {
|
|
9692
|
+
return false;
|
|
9693
|
+
}
|
|
9694
|
+
var preRendererAny = preElement.component;
|
|
9695
|
+
var curRendererAny = curElement.component;
|
|
9696
|
+
if (preRendererAny._outlineWidth !== curRendererAny._outlineWidth) {
|
|
9697
|
+
return false;
|
|
9698
|
+
}
|
|
9699
|
+
if (preRendererAny._outlineWidth > 0) {
|
|
9700
|
+
var a = preRendererAny._outlineColor;
|
|
9701
|
+
var b = curRendererAny._outlineColor;
|
|
9702
|
+
if (a.r !== b.r || a.g !== b.g || a.b !== b.b || a.a !== b.a) {
|
|
9703
|
+
return false;
|
|
9704
|
+
}
|
|
9705
|
+
}
|
|
9706
|
+
return true;
|
|
9707
|
+
};
|
|
9686
9708
|
VertexMergeBatcher.canBatchSpriteMask = function canBatchSpriteMask(preElement, curElement) {
|
|
9687
9709
|
if (preElement.subChunk.chunk !== curElement.subChunk.chunk) {
|
|
9688
9710
|
return false;
|
|
@@ -11212,13 +11234,18 @@ __decorate([
|
|
|
11212
11234
|
_inherits(TextRenderer, Renderer);
|
|
11213
11235
|
function TextRenderer(entity) {
|
|
11214
11236
|
var _this;
|
|
11215
|
-
_this = Renderer.call(this, entity) || this, _this._textChunks = Array(), /** @internal */ _this._subFont = null, /** @internal */ _this._dirtyFlag = 15, _this._color = new engineMath.Color(1, 1, 1, 1), _this._text = "", _this._width = 0, _this._height = 0, _this._localBounds = new engineMath.BoundingBox(), _this._font = null, _this._fontSize = 24, _this._fontStyle = FontStyle.None, _this._lineSpacing = 0, _this._characterSpacing = 0, _this._horizontalAlignment = TextHorizontalAlignment.Center, _this._verticalAlignment = TextVerticalAlignment.Center, _this._enableWrapping = false, _this._overflowMode = OverflowMode.Overflow;
|
|
11237
|
+
_this = Renderer.call(this, entity) || this, _this._textChunks = Array(), /** @internal */ _this._subFont = null, /** @internal */ _this._dirtyFlag = 15, _this._color = new engineMath.Color(1, 1, 1, 1), _this._text = "", _this._width = 0, _this._height = 0, _this._localBounds = new engineMath.BoundingBox(), _this._font = null, _this._fontSize = 24, _this._fontStyle = FontStyle.None, _this._lineSpacing = 0, _this._characterSpacing = 0, _this._horizontalAlignment = TextHorizontalAlignment.Center, _this._verticalAlignment = TextVerticalAlignment.Center, _this._enableWrapping = false, _this._overflowMode = OverflowMode.Overflow, _this._outlineColor = new engineMath.Color(0, 0, 0, 1), _this._outlineWidth = 0;
|
|
11216
11238
|
var engine = _this.engine;
|
|
11217
11239
|
_this._font = engine._textDefaultFont;
|
|
11218
11240
|
_this._addResourceReferCount(_this._font, 1);
|
|
11219
11241
|
_this.setMaterial(engine._basicResources.textDefaultMaterial);
|
|
11242
|
+
var shaderData = _this.shaderData;
|
|
11243
|
+
shaderData.setFloat(TextRenderer._outlineWidthProperty, _this._outlineWidth);
|
|
11244
|
+
shaderData.setColor(TextRenderer._outlineColorProperty, _this._outlineColor);
|
|
11220
11245
|
//@ts-ignore
|
|
11221
11246
|
_this._color._onValueChanged = _this._onColorChanged.bind(_this);
|
|
11247
|
+
// @ts-ignore
|
|
11248
|
+
_this._outlineColor._onValueChanged = _this._onOutlineColorChanged.bind(_this);
|
|
11222
11249
|
return _this;
|
|
11223
11250
|
}
|
|
11224
11251
|
var _proto = TextRenderer.prototype;
|
|
@@ -11240,6 +11267,7 @@ __decorate([
|
|
|
11240
11267
|
Renderer.prototype._cloneTo.call(this, target);
|
|
11241
11268
|
target.font = this._font;
|
|
11242
11269
|
target._subFont = this._subFont;
|
|
11270
|
+
target.outlineWidth = this._outlineWidth;
|
|
11243
11271
|
};
|
|
11244
11272
|
/**
|
|
11245
11273
|
* @internal
|
|
@@ -11273,7 +11301,7 @@ __decorate([
|
|
|
11273
11301
|
/**
|
|
11274
11302
|
* @internal
|
|
11275
11303
|
*/ _proto._canBatch = function _canBatch(preElement, curElement) {
|
|
11276
|
-
return VertexMergeBatcher.
|
|
11304
|
+
return VertexMergeBatcher.canBatchText(preElement, curElement);
|
|
11277
11305
|
};
|
|
11278
11306
|
/**
|
|
11279
11307
|
* @internal
|
|
@@ -11316,6 +11344,7 @@ __decorate([
|
|
|
11316
11344
|
var distanceForSort = this._distanceForSort;
|
|
11317
11345
|
var renderPipeline = camera._renderPipeline;
|
|
11318
11346
|
var textChunks = this._textChunks;
|
|
11347
|
+
var textTextureSize = TextRenderer._tempVec20;
|
|
11319
11348
|
for(var i = 0, n = textChunks.length; i < n; ++i){
|
|
11320
11349
|
var _renderElement;
|
|
11321
11350
|
var _textChunks_i = textChunks[i], subChunk = _textChunks_i.subChunk, texture = _textChunks_i.texture;
|
|
@@ -11323,6 +11352,7 @@ __decorate([
|
|
|
11323
11352
|
renderElement.set(this, material, subChunk.chunk.primitive, subChunk.subMesh, texture, subChunk);
|
|
11324
11353
|
(_renderElement = renderElement).shaderData || (_renderElement.shaderData = new ShaderData(ShaderDataGroup.RenderElement));
|
|
11325
11354
|
renderElement.shaderData.setTexture(TextRenderer._textureProperty, texture);
|
|
11355
|
+
renderElement.shaderData.setVector2(TextRenderer._textTextureSizeProperty, textTextureSize.set(texture.width, texture.height));
|
|
11326
11356
|
renderElement.priority = priority;
|
|
11327
11357
|
renderElement.distanceForSort = distanceForSort;
|
|
11328
11358
|
renderPipeline.pushRenderElement(context, renderElement);
|
|
@@ -11454,10 +11484,11 @@ __decorate([
|
|
|
11454
11484
|
charRenderInfo.texture = charFont._getTextureByIndex(charInfo.index);
|
|
11455
11485
|
charRenderInfo.uvs = charInfo.uvs;
|
|
11456
11486
|
var w = charInfo.w, ascent = charInfo.ascent, descent = charInfo.descent;
|
|
11457
|
-
var
|
|
11458
|
-
var
|
|
11459
|
-
var
|
|
11460
|
-
var
|
|
11487
|
+
var ow = this._outlineWidth * pixelsPerUnitReciprocal;
|
|
11488
|
+
var left = startX * pixelsPerUnitReciprocal - ow;
|
|
11489
|
+
var right = (startX + w) * pixelsPerUnitReciprocal + ow;
|
|
11490
|
+
var top = (startY + ascent) * pixelsPerUnitReciprocal + ow;
|
|
11491
|
+
var bottom = (startY - descent) * pixelsPerUnitReciprocal - ow;
|
|
11461
11492
|
localPositions.set(left, top, right, bottom);
|
|
11462
11493
|
i === firstLine && (maxY = Math.max(maxY, top));
|
|
11463
11494
|
minY = Math.min(minY, bottom);
|
|
@@ -11531,6 +11562,10 @@ __decorate([
|
|
|
11531
11562
|
var vertices = subChunk.chunk.vertices;
|
|
11532
11563
|
var indices = subChunk.indices = [];
|
|
11533
11564
|
var charRenderInfos = textChunk.charRenderInfos;
|
|
11565
|
+
var ow = this._outlineWidth;
|
|
11566
|
+
var texture = textChunk.texture;
|
|
11567
|
+
var owU = ow > 0 ? ow / texture.width : 0;
|
|
11568
|
+
var owV = ow > 0 ? ow / texture.height : 0;
|
|
11534
11569
|
for(var i = 0, ii = 0, io = 0, vo = subChunk.vertexArea.start + 3; i < count; ++i, io += 4){
|
|
11535
11570
|
var charRenderInfo = charRenderInfos[i];
|
|
11536
11571
|
charRenderInfo.indexInChunk = i;
|
|
@@ -11538,10 +11573,13 @@ __decorate([
|
|
|
11538
11573
|
for(var j = 0; j < tempIndicesLength; ++j){
|
|
11539
11574
|
indices[ii++] = tempIndices[j] + io;
|
|
11540
11575
|
}
|
|
11541
|
-
// Set uv and color for vertices
|
|
11576
|
+
// Set uv and color for vertices, expand uv outward by outline width
|
|
11542
11577
|
for(var j1 = 0; j1 < 4; ++j1, vo += 9){
|
|
11543
11578
|
var uv = charRenderInfo.uvs[j1];
|
|
11544
|
-
|
|
11579
|
+
var su = j1 === 1 || j1 === 2 ? 1 : -1;
|
|
11580
|
+
var sv = j1 >= 2 ? 1 : -1;
|
|
11581
|
+
vertices[vo] = uv.x + owU * su;
|
|
11582
|
+
vertices[vo + 1] = uv.y + owV * sv;
|
|
11545
11583
|
vertices[vo + 2] = r;
|
|
11546
11584
|
vertices[vo + 3] = g;
|
|
11547
11585
|
vertices[vo + 4] = b;
|
|
@@ -11570,6 +11608,9 @@ __decorate([
|
|
|
11570
11608
|
_proto._onColorChanged = function _onColorChanged() {
|
|
11571
11609
|
this._setDirtyFlagTrue(16);
|
|
11572
11610
|
};
|
|
11611
|
+
_proto._onOutlineColorChanged = function _onOutlineColorChanged() {
|
|
11612
|
+
this.shaderData.setColor(TextRenderer._outlineColorProperty, this._outlineColor);
|
|
11613
|
+
};
|
|
11573
11614
|
_create_class(TextRenderer, [
|
|
11574
11615
|
{
|
|
11575
11616
|
key: "color",
|
|
@@ -11756,6 +11797,35 @@ __decorate([
|
|
|
11756
11797
|
}
|
|
11757
11798
|
}
|
|
11758
11799
|
},
|
|
11800
|
+
{
|
|
11801
|
+
key: "outlineWidth",
|
|
11802
|
+
get: /**
|
|
11803
|
+
* The outline width in pixels. 0 means outline is disabled. Clamped to [0, 8].
|
|
11804
|
+
*/ function get() {
|
|
11805
|
+
return this._outlineWidth;
|
|
11806
|
+
},
|
|
11807
|
+
set: function set(value) {
|
|
11808
|
+
value = Math.max(0, Math.min(value, 3));
|
|
11809
|
+
if (this._outlineWidth !== value) {
|
|
11810
|
+
this._outlineWidth = value;
|
|
11811
|
+
this.shaderData.setFloat(TextRenderer._outlineWidthProperty, value);
|
|
11812
|
+
this._setDirtyFlagTrue(14);
|
|
11813
|
+
}
|
|
11814
|
+
}
|
|
11815
|
+
},
|
|
11816
|
+
{
|
|
11817
|
+
key: "outlineColor",
|
|
11818
|
+
get: /**
|
|
11819
|
+
* The outline color. Only effective when outlineWidth > 0.
|
|
11820
|
+
*/ function get() {
|
|
11821
|
+
return this._outlineColor;
|
|
11822
|
+
},
|
|
11823
|
+
set: function set(value) {
|
|
11824
|
+
if (this._outlineColor !== value) {
|
|
11825
|
+
this._outlineColor.copyFrom(value);
|
|
11826
|
+
}
|
|
11827
|
+
}
|
|
11828
|
+
},
|
|
11759
11829
|
{
|
|
11760
11830
|
key: "maskInteraction",
|
|
11761
11831
|
get: /**
|
|
@@ -11806,9 +11876,13 @@ __decorate([
|
|
|
11806
11876
|
]);
|
|
11807
11877
|
return TextRenderer;
|
|
11808
11878
|
}(exports.Renderer);
|
|
11809
|
-
TextRenderer.
|
|
11879
|
+
TextRenderer._tempVec20 = new engineMath.Vector2();
|
|
11810
11880
|
TextRenderer._tempVec30 = new engineMath.Vector3();
|
|
11811
11881
|
TextRenderer._tempVec31 = new engineMath.Vector3();
|
|
11882
|
+
TextRenderer._textureProperty = ShaderProperty.getByName("renderElement_TextTexture");
|
|
11883
|
+
TextRenderer._textTextureSizeProperty = ShaderProperty.getByName("renderElement_TextTextureSize");
|
|
11884
|
+
TextRenderer._outlineColorProperty = ShaderProperty.getByName("renderer_OutlineColor");
|
|
11885
|
+
TextRenderer._outlineWidthProperty = ShaderProperty.getByName("renderer_OutlineWidth");
|
|
11812
11886
|
TextRenderer._worldPositions = [
|
|
11813
11887
|
new engineMath.Vector3(),
|
|
11814
11888
|
new engineMath.Vector3(),
|
|
@@ -11867,12 +11941,21 @@ __decorate([
|
|
|
11867
11941
|
__decorate([
|
|
11868
11942
|
assignmentClone
|
|
11869
11943
|
], TextRenderer.prototype, "_overflowMode", void 0);
|
|
11944
|
+
__decorate([
|
|
11945
|
+
deepClone
|
|
11946
|
+
], TextRenderer.prototype, "_outlineColor", void 0);
|
|
11947
|
+
__decorate([
|
|
11948
|
+
ignoreClone
|
|
11949
|
+
], TextRenderer.prototype, "_outlineWidth", void 0);
|
|
11870
11950
|
__decorate([
|
|
11871
11951
|
ignoreClone
|
|
11872
11952
|
], TextRenderer.prototype, "_onTransformChanged", null);
|
|
11873
11953
|
__decorate([
|
|
11874
11954
|
ignoreClone
|
|
11875
11955
|
], TextRenderer.prototype, "_onColorChanged", null);
|
|
11956
|
+
__decorate([
|
|
11957
|
+
ignoreClone
|
|
11958
|
+
], TextRenderer.prototype, "_onOutlineColorChanged", null);
|
|
11876
11959
|
var TextChunk = function TextChunk() {
|
|
11877
11960
|
this.charRenderInfos = new Array();
|
|
11878
11961
|
};
|
|
@@ -18231,14 +18314,16 @@ var ComponentCloner = /*#__PURE__*/ function() {
|
|
|
18231
18314
|
}
|
|
18232
18315
|
};
|
|
18233
18316
|
_proto._getComponentsInChildren = function _getComponentsInChildren(type, results) {
|
|
18234
|
-
|
|
18235
|
-
|
|
18317
|
+
var components = this._components;
|
|
18318
|
+
for(var i = 0, n = components.length; i < n; i++){
|
|
18319
|
+
var component = components[i];
|
|
18236
18320
|
if (_instanceof(component, type)) {
|
|
18237
18321
|
results.push(component);
|
|
18238
18322
|
}
|
|
18239
18323
|
}
|
|
18240
|
-
|
|
18241
|
-
|
|
18324
|
+
var children = this._children;
|
|
18325
|
+
for(var i1 = 0, n1 = children.length; i1 < n1; i1++){
|
|
18326
|
+
children[i1]._getComponentsInChildren(type, results);
|
|
18242
18327
|
}
|
|
18243
18328
|
};
|
|
18244
18329
|
_proto._setActiveInHierarchy = function _setActiveInHierarchy(activeChangeFlag) {
|
|
@@ -20374,6 +20459,7 @@ var rePropName = RegExp(// Match anything that isn't a dot or bracket.
|
|
|
20374
20459
|
function Pointer(id) {
|
|
20375
20460
|
/** The phase of pointer. */ this.phase = PointerPhase.Leave;
|
|
20376
20461
|
/** The position of the pointer in screen space pixel coordinates. */ this.position = new engineMath.Vector2();
|
|
20462
|
+
/** The position of the pointer when it was last pressed down (in screen space pixel coordinates). */ this.pressedPosition = new engineMath.Vector2();
|
|
20377
20463
|
/** The change of the pointer. */ this.deltaPosition = new engineMath.Vector2();
|
|
20378
20464
|
/** @internal */ this._events = [];
|
|
20379
20465
|
/** @internal */ this._upMap = [];
|
|
@@ -20422,12 +20508,16 @@ var PointerEventType = /*#__PURE__*/ function(PointerEventType) {
|
|
|
20422
20508
|
*/ var PointerEventData = /*#__PURE__*/ function() {
|
|
20423
20509
|
function PointerEventData() {
|
|
20424
20510
|
/** The position of the event trigger (in world space). */ this.worldPosition = new engineMath.Vector3();
|
|
20511
|
+
/** The hit-tested target entity (deepest entity on the bubble path). */ this.target = null;
|
|
20512
|
+
/** The entity currently handling the event (same as target on non-bubbling fire, varies on bubble). */ this.currentTarget = null;
|
|
20425
20513
|
}
|
|
20426
20514
|
var _proto = PointerEventData.prototype;
|
|
20427
20515
|
/**
|
|
20428
20516
|
* @internal
|
|
20429
20517
|
*/ _proto.dispose = function dispose() {
|
|
20430
20518
|
this.pointer = null;
|
|
20519
|
+
this.target = null;
|
|
20520
|
+
this.currentTarget = null;
|
|
20431
20521
|
};
|
|
20432
20522
|
return PointerEventData;
|
|
20433
20523
|
}();
|
|
@@ -23289,10 +23379,13 @@ var PointerEventEmitter = /*#__PURE__*/ function() {
|
|
|
23289
23379
|
this._init();
|
|
23290
23380
|
}
|
|
23291
23381
|
var _proto = PointerEventEmitter.prototype;
|
|
23292
|
-
_proto._createEventData = function _createEventData(pointer) {
|
|
23382
|
+
_proto._createEventData = function _createEventData(pointer, target, currentTarget) {
|
|
23383
|
+
if (currentTarget === void 0) currentTarget = target;
|
|
23293
23384
|
var data = this._pool.get();
|
|
23294
23385
|
data.pointer = pointer;
|
|
23295
23386
|
data.worldPosition.copyFrom(this._hitResult.point);
|
|
23387
|
+
data.target = target;
|
|
23388
|
+
data.currentTarget = currentTarget;
|
|
23296
23389
|
return data;
|
|
23297
23390
|
};
|
|
23298
23391
|
_proto._fireDown = function _fireDown(entity, eventData) {
|
|
@@ -23422,12 +23515,12 @@ PointerEventEmitter._tempRay = new engineMath.Ray();
|
|
|
23422
23515
|
};
|
|
23423
23516
|
_proto.processDrag = function processDrag(pointer) {
|
|
23424
23517
|
var entity = this._draggedEntity;
|
|
23425
|
-
entity && this._fireDrag(entity, this._createEventData(pointer));
|
|
23518
|
+
entity && this._fireDrag(entity, this._createEventData(pointer, entity, entity));
|
|
23426
23519
|
};
|
|
23427
23520
|
_proto.processDown = function processDown(pointer) {
|
|
23428
23521
|
var entity = this._pressedEntity = this._draggedEntity = this._enteredEntity;
|
|
23429
23522
|
if (entity) {
|
|
23430
|
-
var eventData = this._createEventData(pointer);
|
|
23523
|
+
var eventData = this._createEventData(pointer, entity, entity);
|
|
23431
23524
|
this._fireDown(entity, eventData);
|
|
23432
23525
|
this._fireBeginDrag(entity, eventData);
|
|
23433
23526
|
}
|
|
@@ -23436,26 +23529,26 @@ PointerEventEmitter._tempRay = new engineMath.Ray();
|
|
|
23436
23529
|
var _this = this, enteredEntity = _this._enteredEntity, draggedEntity = _this._draggedEntity;
|
|
23437
23530
|
if (enteredEntity) {
|
|
23438
23531
|
var sameTarget = this._pressedEntity === enteredEntity;
|
|
23439
|
-
var eventData = this._createEventData(pointer);
|
|
23532
|
+
var eventData = this._createEventData(pointer, enteredEntity, enteredEntity);
|
|
23440
23533
|
this._fireUp(enteredEntity, eventData);
|
|
23441
23534
|
sameTarget && this._fireClick(enteredEntity, eventData);
|
|
23442
23535
|
this._fireDrop(enteredEntity, eventData);
|
|
23443
23536
|
}
|
|
23444
23537
|
this._pressedEntity = null;
|
|
23445
23538
|
if (draggedEntity) {
|
|
23446
|
-
this._fireEndDrag(draggedEntity, this._createEventData(pointer));
|
|
23539
|
+
this._fireEndDrag(draggedEntity, this._createEventData(pointer, draggedEntity, draggedEntity));
|
|
23447
23540
|
this._draggedEntity = null;
|
|
23448
23541
|
}
|
|
23449
23542
|
};
|
|
23450
23543
|
_proto.processLeave = function processLeave(pointer) {
|
|
23451
23544
|
var enteredEntity = this._enteredEntity;
|
|
23452
23545
|
if (enteredEntity) {
|
|
23453
|
-
this._fireExit(enteredEntity, this._createEventData(pointer));
|
|
23546
|
+
this._fireExit(enteredEntity, this._createEventData(pointer, enteredEntity, enteredEntity));
|
|
23454
23547
|
this._enteredEntity = null;
|
|
23455
23548
|
}
|
|
23456
23549
|
var draggedEntity = this._draggedEntity;
|
|
23457
23550
|
if (draggedEntity) {
|
|
23458
|
-
this._fireEndDrag(draggedEntity, this._createEventData(pointer));
|
|
23551
|
+
this._fireEndDrag(draggedEntity, this._createEventData(pointer, draggedEntity, draggedEntity));
|
|
23459
23552
|
this._draggedEntity = null;
|
|
23460
23553
|
}
|
|
23461
23554
|
this._pressedEntity = null;
|
|
@@ -23470,10 +23563,10 @@ PointerEventEmitter._tempRay = new engineMath.Ray();
|
|
|
23470
23563
|
var enteredEntity = this._enteredEntity;
|
|
23471
23564
|
if (entity !== enteredEntity) {
|
|
23472
23565
|
if (enteredEntity) {
|
|
23473
|
-
this._fireExit(enteredEntity, this._createEventData(pointer));
|
|
23566
|
+
this._fireExit(enteredEntity, this._createEventData(pointer, enteredEntity, enteredEntity));
|
|
23474
23567
|
}
|
|
23475
23568
|
if (entity) {
|
|
23476
|
-
this._fireEnter(entity, this._createEventData(pointer));
|
|
23569
|
+
this._fireEnter(entity, this._createEventData(pointer, entity, entity));
|
|
23477
23570
|
}
|
|
23478
23571
|
this._enteredEntity = entity;
|
|
23479
23572
|
}
|
|
@@ -23668,6 +23761,7 @@ PointerEventEmitter._tempRay = new engineMath.Ray();
|
|
|
23668
23761
|
pointer._downMap[button] = frameCount;
|
|
23669
23762
|
pointer._frameEvents |= PointerEventType.Down;
|
|
23670
23763
|
pointer.phase = PointerPhase.Down;
|
|
23764
|
+
pointer.pressedPosition.copyFrom(pointer.position);
|
|
23671
23765
|
break;
|
|
23672
23766
|
}
|
|
23673
23767
|
case "pointerup":
|
|
@@ -24866,7 +24960,7 @@ var spriteFs = "#include <common>\nuniform sampler2D renderer_SpriteTexture;\n\n
|
|
|
24866
24960
|
|
|
24867
24961
|
var spriteVs = "uniform mat4 renderer_MVPMat;\n\nattribute vec3 POSITION;\nattribute vec2 TEXCOORD_0;\nattribute vec4 COLOR_0;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\n\nvoid main()\n{\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n\n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n}\n"; // eslint-disable-line
|
|
24868
24962
|
|
|
24869
|
-
var textFs = "uniform sampler2D renderElement_TextTexture;\nuniform vec4 renderer_UIRectClipRect;\nuniform float renderer_UIRectClipEnabled;\nuniform vec4 renderer_UIRectClipSoftness;\nuniform float renderer_UIRectClipHardClip;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\nvarying vec2 v_worldPosition;\n\nfloat getUIRectClipAlpha()\n{\n vec4 edgeDistance = vec4(\n v_worldPosition.x - renderer_UIRectClipRect.x,\n v_worldPosition.y - renderer_UIRectClipRect.y,\n renderer_UIRectClipRect.z - v_worldPosition.x,\n renderer_UIRectClipRect.w - v_worldPosition.y\n );\n vec4 hardClipFactor = step(vec4(0.0), edgeDistance);\n vec4 softness = max(renderer_UIRectClipSoftness, vec4(1e-5));\n vec4 softClipFactor = clamp(edgeDistance / softness, 0.0, 1.0);\n vec4 useSoftness = step(vec4(1e-5), renderer_UIRectClipSoftness);\n vec4 clipFactor = mix(hardClipFactor, softClipFactor, useSoftness);\n return clipFactor.x * clipFactor.y * clipFactor.z * clipFactor.w;\n}\n\nvoid main()\n{\n float rectClipAlpha = 1.0;\n if (renderer_UIRectClipEnabled > 0.5) {\n rectClipAlpha = getUIRectClipAlpha();\n }\n\n
|
|
24963
|
+
var textFs = "uniform sampler2D renderElement_TextTexture;\nuniform vec2 renderElement_TextTextureSize;\nuniform vec4 renderer_OutlineColor;\nuniform float renderer_OutlineWidth;\n\nuniform vec4 renderer_UIRectClipRect;\nuniform float renderer_UIRectClipEnabled;\nuniform vec4 renderer_UIRectClipSoftness;\nuniform float renderer_UIRectClipHardClip;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\nvarying vec2 v_worldPosition;\n\nfloat getUIRectClipAlpha()\n{\n vec4 edgeDistance = vec4(\n v_worldPosition.x - renderer_UIRectClipRect.x,\n v_worldPosition.y - renderer_UIRectClipRect.y,\n renderer_UIRectClipRect.z - v_worldPosition.x,\n renderer_UIRectClipRect.w - v_worldPosition.y\n );\n vec4 hardClipFactor = step(vec4(0.0), edgeDistance);\n vec4 softness = max(renderer_UIRectClipSoftness, vec4(1e-5));\n vec4 softClipFactor = clamp(edgeDistance / softness, 0.0, 1.0);\n vec4 useSoftness = step(vec4(1e-5), renderer_UIRectClipSoftness);\n vec4 clipFactor = mix(hardClipFactor, softClipFactor, useSoftness);\n return clipFactor.x * clipFactor.y * clipFactor.z * clipFactor.w;\n}\n\nfloat sampleCoverage(vec2 uv)\n{\n vec4 c = texture2D(renderElement_TextTexture, uv);\n #ifdef GRAPHICS_API_WEBGL2\n return c.r;\n #else\n return c.a;\n #endif\n}\n\nvoid main()\n{\n float rectClipAlpha = 1.0;\n if (renderer_UIRectClipEnabled > 0.5) {\n rectClipAlpha = getUIRectClipAlpha();\n }\n\n float coverage = sampleCoverage(v_uv);\n vec4 finalColor;\n\n if (renderer_OutlineWidth > 0.0) {\n vec2 texelSize = 1.0 / renderElement_TextTextureSize;\n vec2 step = texelSize * renderer_OutlineWidth;\n float outlineCoverage = coverage;\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2( step.x, 0.0)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2(-step.x, 0.0)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2( 0.0, step.y)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2( 0.0, -step.y)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2( step.x * 0.7071, step.y * 0.7071)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2(-step.x * 0.7071, step.y * 0.7071)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2( step.x * 0.7071, -step.y * 0.7071)));\n outlineCoverage = max(outlineCoverage, sampleCoverage(v_uv + vec2(-step.x * 0.7071, -step.y * 0.7071)));\n\n vec3 rgb = mix(renderer_OutlineColor.rgb, v_color.rgb, coverage);\n float alpha = max(coverage * v_color.a, outlineCoverage * renderer_OutlineColor.a);\n finalColor = vec4(rgb, alpha);\n } else {\n finalColor = vec4(v_color.rgb, v_color.a * coverage);\n }\n\n finalColor.a *= rectClipAlpha;\n if (renderer_UIRectClipEnabled > 0.5 && renderer_UIRectClipHardClip > 0.5 && finalColor.a < 0.001) {\n discard;\n }\n gl_FragColor = finalColor;\n}\n"; // eslint-disable-line
|
|
24870
24964
|
|
|
24871
24965
|
var textVs = "uniform mat4 renderer_MVPMat;\nuniform mat4 renderer_ModelMat;\n\nattribute vec3 POSITION;\nattribute vec2 TEXCOORD_0;\nattribute vec4 COLOR_0;\n\nvarying vec2 v_uv;\nvarying vec4 v_color;\nvarying vec2 v_worldPosition;\n\nvoid main()\n{\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n\n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n v_worldPosition = POSITION.xy;\n}\n"; // eslint-disable-line
|
|
24872
24966
|
|