-
-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SpriteRenderer
drawMode
property(support simple and sliced)
#828
Conversation
cptbtptpbcptdtptp
commented
Jun 10, 2022
- Add drawing mode. (Slice)
- Optimize RenderData.
if (pivot.x !== x || pivot.y !== y) { | ||
pivot.set(x, y); | ||
this._dispatchSpriteChange(SpritePropertyDirtyFlag.pivot); | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Write like this can solve sprite.pivot.x=2
not work problem
set pivot(value: Vector2) {
const pivot = this._pivot;
if (pivot !== value) {
pivot.copyFrom(value);
}
constructor() {
//@ts-ignore
this._position._onValueChanged = this._onPivotChanged = this._onPivotChanged.bind(this);
}
private _onPivotChanged(): void {
this._dispatchSpriteChange(SpritePropertyDirtyFlag.pivot);
}
const x = MathUtil.clamp(value.x, 0, 1); | ||
const y = MathUtil.clamp(value.y, 0, 1); | ||
region.set(x, y, MathUtil.clamp(value.width, 0, 1 - x), MathUtil.clamp(value.height, 0, 1 - y)); | ||
this._dispatchSpriteChange(SpritePropertyDirtyFlag.atlas); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe is this._dispatchSpriteChange(SpritePropertyDirtyFlag.region)
is region and atlas always same, you can unified as textureRegion
or other name
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
const { min, max } = this._bounds; | ||
min.set(left, bottom, 0); | ||
max.set(right, top, 0); | ||
this._dirtyFlag &= ~DirtyFlag.positions; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Update positions use
region
andatlasRegionOffset
, but why the dirty flag is influence byatlasRegion
atlasRegionOffset
atlasRotated
region
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
material: Material, | ||
camera: Camera | ||
): void { | ||
setValue(component: Renderer, renderDate: RenderData2D, material: Material): void { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set
, the same as math library
spriteElement.setValue(this, _positions, sprite._uv, sprite._triangles, this.color, material, camera); | ||
// Push primitive. | ||
const spriteElement = this._engine._spriteElementPool.getFromPool(); | ||
spriteElement.setValue(this, this._renderData, this.getMaterial()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You already have _renderData
, so spriteElement
and renderData
can merge as spriteRendererElement
, you can delete _spriteElementPool
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will be optimized in the next version.
SpriteRenderer
drawMode
(simple and sliced)
SpriteRenderer
drawMode
(simple and sliced)SpriteRenderer
drawMode
property(support simple and sliced)
* dev/0.8: (28 commits) v0.8.0-alpha.3 v0.8.0-alpha.2 Use char cache mode for TextRenderer (galacean#837) Add basic physics joint component include `FixedJoint`, `SpringJoint`, `HingeJoint` (galacean#853) `InputManager` support pointer button and wheel (galacean#831) fix: TextureCube is left-hand,so x need inverse (galacean#855) Add SpriteRenderer drawMode property(support simple and sliced) (galacean#828) v0.8.0-alpha.1 v0.8.0-alpha.0 Feat(core): add more clear flag item for Camera.clearFlags (galacean#843) Fix transform`translate` and `rotate` space bug (galacean#847) Refactor `cloneTo` to `copyFrom` for math library and rename `setValue` to `set` (galacean#844) optimization camera code (galacean#830) feat: physics character controller (galacean#818) v0.7.0-beta.7 refactor: rename (galacean#827) Merge latest main (galacean#820) fix: change `region` and `pivot` origin to left-bottom (galacean#809) Fix SkyBox render mirror problem (galacean#816) feat: add `priority` for renderer to order(galacean#803) ... # Conflicts: # lerna.json # packages/core/package.json # packages/core/src/2d/dynamic-atlas/DynamicTextAtlas.ts # packages/core/src/2d/sprite/Sprite.ts # packages/core/src/2d/sprite/SpriteMask.ts # packages/core/src/2d/sprite/SpriteRenderer.ts # packages/core/src/2d/text/TextRenderer.ts # packages/core/src/Renderer.ts # packages/core/src/Transform.ts # packages/core/src/physics/index.ts # packages/design/package.json # packages/design/src/physics/IPhysics.ts # packages/draco/package.json # packages/loader/package.json # packages/loader/src/SpriteAtlasLoader.ts # packages/math/package.json # packages/math/src/CollisionUtil.ts # packages/math/src/Vector2.ts # packages/math/src/Vector3.ts # packages/math/src/Vector4.ts # packages/oasis-engine/package.json # packages/physics-lite/package.json # packages/physics-lite/src/LitePhysics.ts # packages/physics-physx/package.json # packages/physics-physx/src/PhysXPhysics.ts # packages/resource-process/package.json # packages/resource-process/tsconfig.json # packages/rhi-webgl/package.json # tests/package.json
* Test: Use Floss and Chai to Replace Jest (#778) test: Use Floss and Chai to Replace Jest * refactor: remove toolkit features (#780) * v0.7.0-beta.4 (#795) * Fix:local translate (#706) * fix(transform):local translate * Add component denpendent decorator (#796) * feat: add `dependentComponents` decorator * ci: remove ci on node 12 (#801) * Update README.md * Fix Test Version Error (#802) * ci: remove ci on node 12 * test: fix version * feat: add `priority` for renderer to order(#803) * feat(renderer): add `priority` for renderer to order * Fix SkyBox render mirror problem (#816) * refactor: fix skybox mirror problem * fix: change `region` and `pivot` origin to left-bottom (#809) * fix: change `region` and `pivot` origin to left-bottom * Merge latest main (#820) * v0.7.0-beta.4 * Update README.md * Update README.md * Update README.md * Add component denpendent decorator (#796) (#807) * feat: add `dependentComponents` decorator * fix(Renderer): destroy crash when material is null (#808) * Improve BlendShape when use attribute mode (#804) * feat: improve BlendShape when use attribute mode * v0.7.0-beta.5 * refactor: fix skybox mirror problem * fix: fixed the bug of animator revert when blendWeight length exceeds 4 (#817) * fix: fixed the bug of animator revert when blendWeight length exceeds 4 * v0.7.0-beta.6 * refactor: fix shader * fix(text): fix horizontal and vertical alignment error (#772) * fix(text): fix horizontal alignment error Co-authored-by: luzhuang <364439895@qq.com> Co-authored-by: singlecoder <singlecoder2014@gmail.com> * refactor: rename (#827) * v0.7.0-beta.7 * feat: physics character controller (#818) * feat: add `CharacterController` for physX backend * optimization camera code (#830) refactor: optimization camera code * Refactor `cloneTo` to `copyFrom` for math library and rename `setValue` to `set` (#844) * feat: refactor `cloneTo` to `copyFrom` for math library * feat: rename `setValue` to `set` for math library * Fix transform`translate` and `rotate` space bug (#847) * fix: transform`translate` and `rotate` space bug * refactor: opt comments * Feat(core): add more clear flag item for Camera.clearFlags (#843) * feat(core): add more clear flag item for Camera.clearFlags * v0.8.0-alpha.0 * v0.8.0-alpha.1 * Add SpriteRenderer drawMode property(support simple and sliced) (#828) * feat: add sprite draw mode(support simple and sliced) * fix: TextureCube is left-hand,so x need inverse (#855) * `InputManager` support pointer button and wheel (#831) * feat: `InputManager` support pointer button and wheel * Add basic physics joint component include `FixedJoint`, `SpringJoint`, `HingeJoint` (#853) * feat: basic physics joint * Use char cache mode for TextRenderer (#837) * feat(text): use char cache mode for TextRenderer * v0.8.0-alpha.2 * v0.8.0-alpha.3 * fix: resolve conflict * fix: resolve conflict Co-authored-by: Hu Song <gz65555@gmail.com> Co-authored-by: AZhan <njktsmshh@163.com> Co-authored-by: singlecoder <singlecoder2014@gmail.com> Co-authored-by: luzhuang <364439895@qq.com> Co-authored-by: zhuxudong <callzhuxudong@163.com> Co-authored-by: yangfengzzz <yangfengzzz@hotmail.com>
* fix: use string replace asset type to extend easily * fix: onEndRender trigger error * fix: remove ms blob deprecated * build: update typescript version * feat: update background mesh * refactor: add gc ignore * build: physics use oasis-engine dependency * bump version * bump version * feat: add register and reflection object * feat: add prefab parser * fix: resourceManager has't destory all cache * fix: cache promise is not clear * bump version * feat: export prefabloader * fix: dynamic explansion * feat: add mipmap generate warn * feat: add mipmap true * feat: add pixel buffer * feat: update engine version * feat: add type watch * feat: init all project * build: remove init oasis * refactor: use modelmesh encode buffer * Test: Use Floss and Chai to Replace Jest (#778) test: Use Floss and Chai to Replace Jest * refactor: remove console * refactor: add math serialize * refactor: add model mesh serialize * refactor: add scene loader * refactor: delete schema parser * refactor: add scene loader * refactor: add index * refactor: remove toolkit features (#780) * v0.7.0-beta.4 (#795) * refactor: fix types error * Fix:local translate (#706) * fix(transform):local translate * Add component denpendent decorator (#796) * feat: add `dependentComponents` decorator * ci: remove ci on node 12 (#801) * Update README.md * Fix Test Version Error (#802) * ci: remove ci on node 12 * test: fix version * feat: add `priority` for renderer to order(#803) * feat(renderer): add `priority` for renderer to order * refactor: remove useless import * Fix SkyBox render mirror problem (#816) * refactor: fix skybox mirror problem * fix: change `region` and `pivot` origin to left-bottom (#809) * fix: change `region` and `pivot` origin to left-bottom * Merge latest main (#820) * v0.7.0-beta.4 * Update README.md * Update README.md * Update README.md * Add component denpendent decorator (#796) (#807) * feat: add `dependentComponents` decorator * fix(Renderer): destroy crash when material is null (#808) * Improve BlendShape when use attribute mode (#804) * feat: improve BlendShape when use attribute mode * v0.7.0-beta.5 * refactor: fix skybox mirror problem * fix: fixed the bug of animator revert when blendWeight length exceeds 4 (#817) * fix: fixed the bug of animator revert when blendWeight length exceeds 4 * v0.7.0-beta.6 * refactor: fix shader * fix(text): fix horizontal and vertical alignment error (#772) * fix(text): fix horizontal alignment error Co-authored-by: luzhuang <364439895@qq.com> Co-authored-by: singlecoder <singlecoder2014@gmail.com> * feat: export animation type * refactor: bump version * refactor: rename (#827) * v0.7.0-beta.7 * feat: physics character controller (#818) * feat: add `CharacterController` for physX backend * optimization camera code (#830) refactor: optimization camera code * Refactor `cloneTo` to `copyFrom` for math library and rename `setValue` to `set` (#844) * feat: refactor `cloneTo` to `copyFrom` for math library * feat: rename `setValue` to `set` for math library * feat: add to Obejct * feat: remove swc core * refactor: change toJSON to toObject * Fix transform`translate` and `rotate` space bug (#847) * fix: transform`translate` and `rotate` space bug * refactor: opt comments * refactor: merge dev/0.8 * refactor: remove console * Feat(core): add more clear flag item for Camera.clearFlags (#843) * feat(core): add more clear flag item for Camera.clearFlags * v0.8.0-alpha.0 * v0.8.0-alpha.1 * feat: update resource process * Add SpriteRenderer drawMode property(support simple and sliced) (#828) * feat: add sprite draw mode(support simple and sliced) * fix: TextureCube is left-hand,so x need inverse (#855) * `InputManager` support pointer button and wheel (#831) * feat: `InputManager` support pointer button and wheel * Add basic physics joint component include `FixedJoint`, `SpringJoint`, `HingeJoint` (#853) * feat: basic physics joint * Use char cache mode for TextRenderer (#837) * feat(text): use char cache mode for TextRenderer * v0.8.0-alpha.2 * v0.8.0-alpha.3 * feat: add script parser Co-authored-by: gz65555 <kevin.hs@antgroup.com> Co-authored-by: ChenMo <gl3336563@163.com> Co-authored-by: AZhan <njktsmshh@163.com> Co-authored-by: singlecoder <singlecoder2014@gmail.com> Co-authored-by: luzhuang <364439895@qq.com> Co-authored-by: zhuxudong <callzhuxudong@163.com> Co-authored-by: yangfengzzz <yangfengzzz@hotmail.com>
* Test: Use Floss and Chai to Replace Jest (#778) test: Use Floss and Chai to Replace Jest * refactor: remove toolkit features (#780) * v0.7.0-beta.4 (#795) * Fix:local translate (#706) * fix(transform):local translate * Add component denpendent decorator (#796) * feat: add `dependentComponents` decorator * ci: remove ci on node 12 (#801) * Update README.md * Fix Test Version Error (#802) * ci: remove ci on node 12 * test: fix version * feat: add `priority` for renderer to order(#803) * feat(renderer): add `priority` for renderer to order * Fix SkyBox render mirror problem (#816) * refactor: fix skybox mirror problem * fix: change `region` and `pivot` origin to left-bottom (#809) * fix: change `region` and `pivot` origin to left-bottom * Merge latest main (#820) * v0.7.0-beta.4 * Update README.md * Update README.md * Update README.md * Add component denpendent decorator (#796) (#807) * feat: add `dependentComponents` decorator * fix(Renderer): destroy crash when material is null (#808) * Improve BlendShape when use attribute mode (#804) * feat: improve BlendShape when use attribute mode * v0.7.0-beta.5 * refactor: fix skybox mirror problem * fix: fixed the bug of animator revert when blendWeight length exceeds 4 (#817) * fix: fixed the bug of animator revert when blendWeight length exceeds 4 * v0.7.0-beta.6 * refactor: fix shader * fix(text): fix horizontal and vertical alignment error (#772) * fix(text): fix horizontal alignment error Co-authored-by: luzhuang <364439895@qq.com> Co-authored-by: singlecoder <singlecoder2014@gmail.com> * refactor: rename (#827) * v0.7.0-beta.7 * feat: physics character controller (#818) * feat: add `CharacterController` for physX backend * optimization camera code (#830) refactor: optimization camera code * Refactor `cloneTo` to `copyFrom` for math library and rename `setValue` to `set` (#844) * feat: refactor `cloneTo` to `copyFrom` for math library * feat: rename `setValue` to `set` for math library * Fix transform`translate` and `rotate` space bug (#847) * fix: transform`translate` and `rotate` space bug * refactor: opt comments * Feat(core): add more clear flag item for Camera.clearFlags (#843) * feat(core): add more clear flag item for Camera.clearFlags * v0.8.0-alpha.0 * v0.8.0-alpha.1 * Add SpriteRenderer drawMode property(support simple and sliced) (#828) * feat: add sprite draw mode(support simple and sliced) * fix: TextureCube is left-hand,so x need inverse (#855) * `InputManager` support pointer button and wheel (#831) * feat: `InputManager` support pointer button and wheel * Add basic physics joint component include `FixedJoint`, `SpringJoint`, `HingeJoint` (#853) * feat: basic physics joint * Use char cache mode for TextRenderer (#837) * feat(text): use char cache mode for TextRenderer * v0.8.0-alpha.2 * v0.8.0-alpha.3 * Optimization performance for `TextRenderer` to update world positions (#861) * refactor(text): optimization performance for `TextRenderer` to update world positions * Fix `InputManager` bug (#863) * fix: `pointer` position bug * fix: `pointerMovingDelta` value bug * fix: input `onPointerXX` bug not follow `Camera` cullingMask * fix(2d): `SpriteRenderer` can not show error (#865) * v0.8.0-alpha.4 * v0.8.0-alpha.5 Co-authored-by: Hu Song <gz65555@gmail.com> Co-authored-by: ChenMo <gl3336563@163.com> Co-authored-by: AZhan <njktsmshh@163.com> Co-authored-by: singlecoder <singlecoder2014@gmail.com> Co-authored-by: luzhuang <364439895@qq.com> Co-authored-by: zhuxudong <callzhuxudong@163.com> Co-authored-by: yangfengzzz <yangfengzzz@hotmail.com>
…cean#828) * feat: add sprite draw mode(support simple and sliced)