Commit Graph

266 Commits

Author SHA1 Message Date
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