Commit Graph

264 Commits

Author SHA1 Message Date
halx99 c37af4c38e Improve shader managment
1. Rename uniformId to batchId, refine batch draw check logic, not use xxhash to compute uniforms id
2. Material works, not check all cpp-tests, but some 2d/3d material works fine
3. Shader load/cache API improvements.
4. BREAK compatibliity: Node::setProgramState change parameter needsRetain to ownPS and value inverted.
5. custom vertexLayout setup: add new API ProgramState::getMutableVertexLayout, mark ProgramState::setVertexAttrib deprecated.
6. ProgramManager registerCustomProgram change to gen progId by vsName, fsName
with xxhash64, if register succed, user can load it by progId with `loadProgram`
7. Add API ProgramManager::loadProgram for loading builtin by progType or
loding a custom program by id
8. Add API ProgramManager::loadProgram to load program by vsName, fsName
immediately without register as CUSTOM_PROGRAM
9. Add API Node::setProgramStateByProgramId(progTypeOrId); for set programState with
programType or programId explicit.
10. Migrate material load logic
2023-07-25 09:40:05 +08:00
halx99 76f00b4456 Make renderer works on opengl core profile mode 2023-07-20 20:23:56 +08:00
halx99 1b4c9bbec8 Auto compile app/Sources/shaders to axslc/custom 2023-07-19 23:41:16 +08:00
halx99 7bd3b57809 Improve code style 2023-07-19 21:12:25 +08:00
halx99 04c5505fa2 Fix glDisable state guard 2023-07-19 18:35:05 +08:00
Deal eae07123dc Refer to #1278 2023-07-19 09:10:46 +08:00
Turky Mohammed 7759ad562f Optimize `OpenGL` State Management (#1269)
Co-authored-by: halx99 <halx99@live.com>
2023-07-18 21:16:21 +08:00
j-jorge c2d7bdcb45 Allow unity builds on a subset of the sources. (#1266)
In order to allow unity builds we need to avoiding "using namespace"
at file scope, #undef our file-specific #defines, and avoid having
static functions with identical name and signature.
2023-07-15 19:06:54 +08:00
RH 6bc2deeba8 Update Sprite::getQuad() to return const reference (#1260) 2023-07-09 19:00:12 +08:00
Deal(涓€绾跨伒) abd8029f64 Remove CC prefix from code file name (#1230)
* Add migrate sources tool

* Fix include replace regex

* Fix compile

* Migrate maually

* Disable sources-migrate tool by default

* Fix ci

* Fix ci

* Improve source migrate

* Fix ios/tvos ci

* Fix ios/tvos ci

* Fix
2023-06-11 13:08:08 +08:00
RH 978648e5a9 Factor in protected nodes when creating global Z node priority map for event dispatcher (#1224) 2023-06-05 17:09:50 +08:00
aismann f54836160e Update CCAutoPolygon.cpp (#1201)
Removed "nonsens" code
2023-05-08 06:17:38 +08:00
RH 98146f438b Fix RenderTexture memory leak and increased memory usage when initWithWidthAndHeight is called (#1191) 2023-04-28 14:54:57 +08:00
Turky Mohammed 90bc5108cd Refactor HSV/HSL (#1187)
* Refactor HSV/HSL

some code in `CCParticleSystemQuad.cpp` depends on changes made in `HSV/HSL` classes.

* remove incorrect const&
2023-04-26 17:44:32 +08:00
aismann af68d2e9e2 Clipper2 1.2.2 (#1138) 2023-03-27 21:46:14 +08:00
Deal(涓€绾跨伒) 1e6e9d4a8d Media engine video texture (#1133)
* VideoPlayer based on new MediaEngine[Win32/UWP]

* Improve MediaEngine interface

* Update readme

* Improve pixel format

* Improve MediaEngine interface

* Ready for PR UWP/Win32

* Ready for PR UWP,Win32

* Update reademe files

* Update readme files

* Update UIVideoPlayer-android.cpp [skip ci]

* Update UIVideoPlayer-ios.mm

* Update MFUtils.cpp

* Fix ci
2023-03-25 08:37:51 +08:00
Turky Mohammed fc4766076c [IMPROVEMENT] Fix tilemap camera move and zoom culling (#1134)
* Fix tilemap culling

* Update CCFastTMXLayer.cpp

* Update CCFastTMXLayer.h
2023-03-25 08:33:39 +08:00
Turky Mohammed eae2ffabcb [BUG] Fix TMX Tiled Map `CSV`, `BASE64`, & `ZLIB` incorrect parsing (#1131)
* Fix TMX Tiled Map `CSV`, `BASE64`, & `ZLIB` incorrect parsing

* Revert "Fix TMX Tiled Map `CSV`, `BASE64`, & `ZLIB` incorrect parsing"

This reverts commit 3088123a20.

* Use `std::regex_replace` instead

* Avoid copying strings

* Update CCTMXXMLParser.cpp
2023-03-25 08:33:13 +08:00
RH 4c90ac17a4 Fix return reference to local temporary value (#1127)
* Fix invalid return type for temporary variable
2023-03-21 21:22:02 +08:00
RH b6ab32ae6d Fix for incorrect tile sprite setup on creation (#1114)
* On tile sprite creation, apply required settings based on tile flags
2023-03-13 08:55:26 +08:00
RH 941ccd0d14 TiledMap sprite position fix (#1112)
* Correctly store flags and gid with sprite created for tile
Use correct coordinates when displaying sprite for a tile

* Fix up typo and long test titles
2023-03-12 16:15:11 +08:00
Deal(涓€绾跨伒) 277bcd44ce Windows Store UWP apps support (#1108)
* [BIG FEATURE] Windows Store UWP apps support

* Fix ci, add uwp for pr-ci

* Fix ci

* Improve ci script

* Fix ci

* Fix ci

* Fix ci

* Fix ci

* Upload uwp appx package artifacts [skip ci]

* Use d2d draw system font text

* Fix ci

* Improve code style
2023-03-11 22:10:18 +08:00
halx99 8bf4817ff7 Fix compile errors in c++17 2023-03-08 08:34:17 +08:00
Turky Mohammed 969c2257f8 [BUG] TileMap flipped/rotated animated tiles incorrect rendering. (#1098)
* Add test cases

* Delete default_hrtf.txt

* Fix rotated/flipped animated tile maps

* Optimize bitwise operations

* improve bitwise operations
2023-03-07 23:26:37 +08:00
Turky Mohammed 6a7522ae84 [BUG] TileMap OpenGL pixel-tolerance fix (#1085)
* Update CCFastTMXLayer.cpp

* [skip ci]

* Implement equation into engine

* Update CCFastTMXLayer.cpp [skip ci]

* [correction] fix sub-pixel equation
2023-03-06 22:41:16 +08:00
aismann 2cb695e398 removed unused variable: const Vec2 pt (#1079)
const Vec2 pt(so.x / PRECISION, so.y / PRECISION);
2023-02-26 04:29:57 +08:00
halx99 c4e219160a Fix #1075 2023-02-25 06:21:23 +08:00
aismann cfcf541744 Visible artifacts on DrawNode::drawCircle() with a corresponding lineWidth > 5 (window resizing issue) (#1050)
* Fix DrawNode::drawCircle() behavior itf the window is resizing.

* Update CCDrawNode.cpp

Tested also with
resourceSize(960, 640) or (1280, 720)
designSize(480, 320) or (400, 320);

Making a deal with the "boss"

* Update drawCircle and Tests

_lineWidth/4  is needed => the circle grow to fast without

---------

Co-authored-by: Deal(涓€绾跨伒) <halx99@live.com>
2023-02-22 20:02:20 +08:00
Turky Mohammed 63263e09d2 Add Anchored Sprite Class (#1040)
* add anchored sprite class

* Add feature tests
2023-02-10 14:07:20 +08:00
halx99 ae14727dc7 Fix #1032 2023-01-17 10:06:09 +08:00
aismann f238e5e0ff Improve drawCircle rendering for big rings (#1013)
* Update HelloWorldScene.cpp

replace   _director->end();  with menuCloseCallback(this);

* Rendering drawCircle
2023-01-06 23:25:31 +08:00
halx99 cb35a48885 Take care lambda implicit capture std::string_view
refer to: #1002
2023-01-03 23:02:17 +08:00
halx99 0f97e3fa3a Improve base64 API
Move base64Encode/base64Decode to namespace `ax::utils`
2023-01-01 18:07:18 +08:00
Turky Mohammed 4ceadb9740 [IMPROVEMENT] Remove camera unnecessary perspective option. (#993)
* Fix camera applyZoom when window size changes

* Revert "Fix camera applyZoom when window size changes"

This reverts commit 26154b5ff7.

* Fix pr

* remove camera perspective option

* fix merge conflict

* Update CCCamera.cpp

* Update CCCamera.h
2022-12-29 16:54:26 +08:00
Turky Mohammed d7a6a64517 [BUG] Fix camera `applyZoom()` when window size changes and remove unnecessary projection code (#992)
* Fix camera applyZoom when window size changes

* Revert "Fix camera applyZoom when window size changes"

This reverts commit 26154b5ff7.

* Fix pr
2022-12-29 16:54:01 +08:00
涓€绾跨伒|Deal 6d1e652213 Fix #983 2022-12-12 19:41:07 +08:00
RH 1a0612ca6e Move getWorldPosition() from Widget to Node class (#978)
* Committing genbindings changes

* Move getWorldPosition() method to Node class to allow world position to be retrieved for any node.
2022-12-07 09:24:46 +08:00
RH 2e30b51ab7 Add a pool for GroupCommand rendering commands (#969)
* Committing genbindings changes

* Use a pool of GroupCommand entries to avoid multiple entries of the same group in the render queue in certain scenarios

* Ensure captureNode works as expected.

* Set member variables to default values when init method is called on the GroupCommand

* Explicitly reset the command state when retrieving a GroupCommand from the pool
2022-11-28 08:37:22 +08:00
Vincent Lee 5f6e1cd42d Fix warnings (implicit conversion loses and use of deprecated function) 2022-11-20 09:58:34 +09:00
joilnen 5214ea1eb1 fixing some warnings compilation in linux gcc 12.2.0 2022-11-14 15:46:27 -03:00
Vincent Lee 97f8a8d544 Replace use of deprecated sprintf with snprintf 2022-11-14 16:02:16 +09:00
halx99 0279d5c158 Fix #958 2022-11-10 21:22:55 +08:00
halx99 bfd96ae10a Improve memory use 2022-11-03 18:01:10 +08:00
RH 0649ab40df Force recalculation of normalized position when assigning new parent to node (#952)
* Committing genbindings changes

* Ensure normalized position is re-calculated if parent node changes
2022-11-03 15:49:34 +08:00
halx99 4fa40ee96b Validate shared VertexLayout from Shader Program 2022-10-20 20:22:28 +08:00
halx99 10ea947a50 Validate shared VertexLayout from Shader Program 2022-10-20 20:19:56 +08:00
halx99 376941da91 Migrate 2022-10-18 19:17:36 +08:00
halx99 abd9338a7a Migrate [skip ci] 2022-10-18 19:13:40 +08:00
涓€绾跨伒|Deal 25d93bd509 Improve code quality (stage1.Oct) (#916)
* Improve code quality

* Add env PULL_REQUEST [skip ci]

* Update build.ps1

* Fix ci [skip ci]

* Update ZipUtils.cpp

* Update build.ps1

* Resolve reviews

* Improve

* Improve code style

* Resolve reviews

* Use pod_vector

* Improve resize growth

* Update CCAnimation3D.cpp

* Update axstd.h [skip ci]
2022-10-13 21:44:42 +08:00
aismann 3ef8ac63f2 rename cocos2d to axmol (#920)
* rename cocos2d to axmol

* rename cocos2d.h to axmol.h

* Update Physics3DTest.cpp

replace Sprite3D -> MeshRenderer
2022-10-12 00:15:09 +08:00