Commit Graph

335 Commits

Author SHA1 Message Date
halx99 449a596f3e Merge: fd2cbdc331 a816a8ac64
Merge branch '1.x' into dev

# Conflicts:
#       README.md
#       README_CN.md
#       install-pwsh.sh
#       tools/console/axmol
2023-08-31 17:56:09 +08:00
halx99 c2e55c4cdc Merge console-next from dev into 1.x 2023-08-31 17:48:39 +08:00
halx99 5183995a36 Merge: f9b6553e57 94be720d3f
Merge branch '1.x' into dev
2023-08-25 16:57:54 +08:00
halx99 2bf41d7d31 Fix ci 2023-08-25 16:57:38 +08:00
halx99 46f668b01b Remove render backend setLineWidth [skip ci]
Due to not all of GL and Metal support it, so remove it unify behavior
developers shouldn't relay on it
2023-08-25 16:49:08 +08:00
halx99 f525d6c726 Update docs 2023-08-25 16:46:32 +08:00
halx99 66d68707f1 Improve GLES2 compatibility 2023-08-22 19:34:28 +08:00
halx99 bfe167121e Add cmake option AX_GLES_PROFILE
Valid value of AX_GLES_PROFILE: 0, 200, 300

By default, the AX_GLES_PROFILE is:

- android: 200, allow axmol apps runs on: API 17 Android 4.2+ devices
- winuwp: 300
- Win32/linux/osx/ios/tvos: 0

For ios/tvos, will forcing AX_GLES_PROFILE to 300 if AX_GLES_PROFILE not 0
2023-08-14 20:40:05 +08:00
Deal 9dc9e9adc7 Update android.yml 2023-08-13 23:58:18 +08:00
halx99 bd0e1fef4b Fix compile error 2023-08-13 22:09:02 +08:00
Deal 572bb2f700 Test use glad on android 2023-08-13 00:24:35 +08:00
halx99 cdc8bb0b4c Refactor FileStream implementation 2023-08-11 14:42:41 +08:00
halx99 cc9cbcbff9 Merge: eba7fc17ba 6bbdc273f8
Merge branch 'main' into dev
2023-08-10 18:53:35 +08:00
halx99 46ed10dac3 Update yasio to v4.1.0 2023-08-10 18:36:45 +08:00
halx99 f63932bb91 Update ios GLES to GLES3 2023-08-09 22:25:15 +08:00
halx99 065332b718 Improve code style 2023-08-09 16:00:20 +08:00
halx99 1ec408812f Fix cmake setup 2023-08-09 14:37:43 +08:00
Deal 969baf94d4 Update CHANGELOG [skip ci] 2023-08-09 13:52:28 +08:00
halx99 9452e88272 Fix label outline effect 2023-08-09 13:26:57 +08:00
halx99 0f642ddb2e Improve shader module and empty texture managment 2023-07-28 11:46:34 +08:00
halx99 2191b51499 [WIP] Not convert mat3 to mat3x4 in engine
Because both metal and GLSL3/ESSL3 mat3 is identical to mat3x4, so provide a
class Mat3 to handle GPU mat3x3
2023-07-27 22:36:51 +08:00
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
涓€绾跨伒|Deal e9e7de0cea Improve AutoPolygon::generateTriangles performance (#905) 2022-10-09 18:06:15 +08:00
涓€绾跨伒|Deal 48a7da97d6 Final migrate (#876) 2022-10-01 16:24:52 +08:00
RH eed2cde7d9 Fix to ensure Component::onEnter() is called (#867)
* Committing genbindings changes

* Ensure that Component::onEnter() is called if component is added after parent onEnter has been called.

* Code style
2022-09-27 17:32:04 +08:00
halx99 ad69ed003a Remove unnecessary APIs 2022-09-26 23:20:54 +08:00
halx99 5c735619f9 Improve code style 2022-09-24 11:01:45 +08:00
halx99 3a9a26c743 Fix #861 2022-09-23 22:41:30 +08:00
涓€绾跨伒|Deal c693e54265 Update CCAutoPolygon.cpp 2022-09-19 18:22:34 +08:00
aismann e571e8242d Clipper2 v1 04 (#856)
* Clipper2 v1.04 (and small fixes)

* Update README.md
2022-09-19 14:17:13 +08:00
涓€绾跨伒|Deal e0e083aa3b Merge: 6df48e9f8b baceccbb2f
Merge pull request #837 from aismann/ISSUE_#825

#825
2022-09-02 11:59:46 +08:00
halx99 ec1a06afe8 Fix typo 2022-09-02 10:36:25 +08:00
aismann 68f8a2b0c7 #825 2022-09-01 13:51:19 +02:00
aismann 9cecc6341c Update CCAutoPolygon.cpp 2022-08-27 18:30:22 +02:00
aismann c58b31d382 cleanup2 2022-08-27 17:41:12 +02:00
aismann ae349db909 cleanup 2022-08-27 17:40:03 +02:00
aismann 3bbbb0b2bf Replace Clipper1 (all stuff) 2022-08-27 17:00:10 +02:00
halx99 b1287b8cc5 Migrate cmake files 2022-08-11 15:41:10 +08:00
halx99 8a348b8342 Fix #791 really 2022-08-11 10:52:38 +08:00
DelinWorks 72ec15f3ae Remove assign dups and simplify function naming. 2022-08-11 01:52:04 +03:00
Turky Mohammed 8d1cb27616 Update CCCamera.h [skip ci] 2022-08-10 21:10:34 +03:00
DelinWorks 895d2887fb Add initialize member function. 2022-08-10 21:09:10 +03:00
DelinWorks bc11f9f5fc Update CCCamera.cpp [skip ci] 2022-08-10 20:38:59 +03:00
DelinWorks 2e22040118 Fix camera view calculation and tidy up system 2022-08-10 20:14:18 +03:00
aismann 5d64474cfb rename push_back vs emplace_back (fine tuning and remove on Live2D (too much)) 2022-08-09 05:51:07 +02:00
涓€绾跨伒 9892aa3d1c Migrate axys (#782) 2022-08-08 18:02:17 +08:00
aismann 376c80dd2d Replace push_back() vs emplace_back() on axis/tests/cpp-tests and axis/core (#781)
* Replace push_back() vs emplace_back() on axis\tests\cpp-tests\

D:\______\GitHub\aismann\axis\tests\cpp-tests\Classes
Replace Vector push_back() vs emplace_back() #762

* Replace push_back() vs emplace_back() on axis\core\ #781

* Update CCConsole.cpp

* Update UIWebViewImpl-android.cpp

* Update UIWebViewImpl-android.cpp
2022-08-08 13:18:33 +08:00
aismann 2a2e8a1e95 Improve c++11 for-loop performance with Universal References (#760) 2022-07-21 19:19:08 +08:00
halx99 c16a33e347 Migrate more macors 2022-07-16 10:43:05 +08:00
涓€绾跨伒 ac1872494c Remove unnecessary check [skip ci]
refer to #748
2022-07-15 19:44:31 +08:00
halx99 41d2c44308 Migrate macros 'CC_' to 'AX_' 2022-07-15 19:17:01 +08:00