Commit Graph

908 Commits

Author SHA1 Message Date
halx99 c2e55c4cdc Merge console-next from dev into 1.x 2023-08-31 17:48:39 +08:00
Deal 6d52b97ae8 By default, use ANGLE on win32 2023-08-31 12:33:29 +08:00
halx99 cce6c2f8e1 Improve code style 2023-08-30 19:35:38 +08:00
halx99 6f10f5bbc9 Improve CMakeLists.txt 2023-08-30 18:34:28 +08:00
halx99 acdc28f566 Improve CMakeLists.txt 2023-08-30 17:29:53 +08:00
halx99 68611e902d Remove linux dependent: libbsd 2023-08-30 15:13:35 +08:00
halx99 0021a69d03 Remove early feature mark 2023-08-26 22:50:18 +08:00
halx99 48209e9203 Improve FileStream API qualifier 2023-08-26 16:53:01 +08:00
halx99 6c881e59d1 Explicit set source charset to utf-8 for windows targets 2023-08-26 11:07:44 +08:00
Deal 307e7b084e Update CommandBufferMTL.mm 2023-08-25 17:56:25 +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
Deal 26fc5c9de6 Update CommandBufferGLES2.cpp 2023-08-24 19:30:00 +08:00
halx99 c230ed8c2c Improve renderer backend choosing 2023-08-23 20:09:06 +08:00
halx99 549f347e0a Improve GLES version detection 2023-08-23 01:25:33 +08:00
halx99 ac60f9de43 Fix ci 2023-08-22 20:25:54 +08:00
halx99 01c883b6dc Improve code style 2023-08-22 20:11:30 +08:00
halx99 66d68707f1 Improve GLES2 compatibility 2023-08-22 19:34:28 +08:00
halx99 66c65ff6bb Fix desktop GLES profile setup 2023-08-21 21:43:27 +08:00
halx99 e49d02d5b6 Improve code style 2023-08-18 10:25:56 +08:00
halx99 05c59dd126 Improve code style 2023-08-18 10:22:53 +08:00
Deal f4a2a3f04b Fix ci 2023-08-17 22:13:23 +08:00
halx99 3d6068ef70 Improve vertex attribs state update 2023-08-17 21:48:57 +08:00
halx99 5ceb1e9350 Allow instancing featrue on GLES2 with instace draw EXT 2023-08-17 20:22:24 +08:00
halx99 b16e430353 ASTC hardware detection: restrict check render result color 2023-08-17 00:36:08 +08:00
halx99 0273431bc8 Enable instancing draw when device support 2023-08-16 19:24:55 +08:00
halx99 b14a102ecb Improve ASTC detection 2023-08-16 13:04:48 +08:00
halx99 af98934992 Fix ci 2023-08-15 18:21:17 +08:00
halx99 d427fd8767 Improve DeviceInfoGL 2023-08-15 18:02:02 +08:00
Deal 7052dd4475 Improve astc support detection 2023-08-15 00:37:16 +08:00
halx99 95737f3440 Fix astc detection 2023-08-14 23:33:02 +08:00
halx99 69c13a905f Improve code style 2023-08-14 23:07:13 +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
Deal 371340b19e Update version to 2.x 2023-08-12 00:41:15 +08:00
halx99 79187cf9f6 Improve ZipUtils 2023-08-11 20:52:15 +08:00
halx99 433f459787 Fix ci 2023-08-11 17:05:39 +08:00
halx99 72558c6c2d Fix crash when digital envelope routines::unsupported 2023-08-11 16:19:15 +08:00
halx99 6b58db0eb2 Move posix defines to FileStream.cpp 2023-08-11 15:25:19 +08:00
halx99 bf31f7b77d Fix ci 2023-08-11 15:04:33 +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 fb5aabff79 Fix android build 2023-08-10 14:06:49 +08:00
halx99 ec3b06aa33 Improve cmake options 2023-08-10 13:33:22 +08:00
halx99 f63932bb91 Update ios GLES to GLES3 2023-08-09 22:25:15 +08:00
halx99 7a40c94e2a Check vao creation 2023-08-09 21:46:03 +08:00
halx99 615cfa5bb2 Update mac GL to 330 2023-08-09 21:39:01 +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 238457af4d Improve code style [skip ci] 2023-08-09 13:25:20 +08:00
halx99 e6039273f5 Reset texture binding state when deleteTexture 2023-08-05 23:08:37 +08:00
halx99 28150610be Improve code style 2023-08-02 11:34:06 +08:00
halx99 2d0a63660f Improve custom program draw batch 2023-08-02 10:31:52 +08:00
halx99 30306ad316 Delete glsl-optimizer due to new shader workflow only require offline tool glslcc 2023-08-01 12:12:10 +08:00
halx99 ae3bcb77da Fix navmesh debug draw vertex layout incorrect 2023-08-01 12:08:13 +08:00
halx99 5a68442d1e Improve code style 2023-08-01 12:00:31 +08:00
Turky Mohammed 1b2c651daa [BUG] Instancing memory leak fix (#1288)
* Implement Uniform Buffer Objects in OpenG

* Revert "Implement Uniform Buffer Objects in OpenG"

This reverts commit 7d32372ef4.

* Update Mesh.cpp
2023-08-01 06:21:42 +08:00
halx99 1a3a4fa0eb Implement metal instancing draw 2023-07-31 10:03:24 +08:00
halx99 805b115719 Update lua bindings 2023-07-29 21:30:35 +08:00
halx99 bba3818829 Fix gray shader name 2023-07-29 17:46:10 +08:00
halx99 d2dda873c4 Improve code style 2023-07-29 15:46:04 +08:00
halx99 9624ec4663 Fix android image reference issue 2023-07-28 15:21:56 +08:00
halx99 a04c2d6945 Merge pull request #1253 from DelinWorks/instancing-support
Co-authored-by: Turky Mohammed <45469625+DelinWorks@users.noreply.github.com>
2023-07-28 14:24:58 +08:00
Deal ec4e5e1258 Fix ProgramGL uniform stage 2023-07-28 13:45:52 +08:00
halx99 0f642ddb2e Improve shader module and empty texture managment 2023-07-28 11:46:34 +08:00
halx99 d882208b8b Improve code style 2023-07-28 10:37:27 +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 c8464ed5db Remove unnecessary uniform convert 2023-07-27 20:37:06 +08:00
halx99 286ff503c5 Improve sgs binary reflect info read 2023-07-27 19:13:09 +08:00
halx99 edee8af2a6 Fix metal render issues
- Fix metal uniform buffer alignment size
- Fix spine two color tint render for metal
- Update glslcc to 1.9.0
2023-07-27 18:21:16 +08:00
halx99 a3548bbe3d Fix metal uniform block member offset and size 2023-07-26 20:05:16 +08:00
halx99 cf69428746 Use macro for shader location binding 2023-07-25 19:06:12 +08:00
halx99 ea2124bb2e Fix ci 2023-07-25 10:18:14 +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 5a0838e52b Migrate materials 2023-07-23 21:43:25 +08:00
halx99 0d4a274d41 Fix incorrect ubo upload
because ubo was share in ProgramGL
2023-07-21 20:49:06 +08:00
halx99 756e860794 Fix state for multi gl context
Solve imgui multi-viewport afterimage problem
2023-07-21 19:32:44 +08:00
halx99 1434b1a6c9 Add optimizing comment[skip ci] 2023-07-21 08:37:21 +08:00
halx99 ea91aebb91 Improve gl state cache 2023-07-21 07:59:38 +08:00
halx99 76f00b4456 Make renderer works on opengl core profile mode 2023-07-20 20:23:56 +08:00
halx99 7315824e5f Fix linux build 2023-07-20 12:25:31 +08:00
Deal 261b4b5a16 Update axmolver.h.in [skip ci] 2023-07-20 10:22:45 +08:00
halx99 71c2d3a3b1 Init axslc search path at ProgramManager init 2023-07-20 10:20:06 +08:00
halx99 02616bb774 Merge: ac073ee8c1 4753270d77
Merge branch 'main' into dev
2023-07-19 23:45:36 +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 862a682b7b Remove deprecated stubs 2023-07-19 21:10:11 +08:00
halx99 bc6cdf0b11 Fix ci 2023-07-19 21:04:50 +08:00
halx99 e11b8de571 Fix ci 2023-07-19 19:53:32 +08:00
halx99 42f666ff89 Refactor GL uniform block support 2023-07-19 19:20:06 +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
Deal 6207431e6e Fix glDisable state guard 2023-07-19 00:17:10 +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
halx99 caacef1215 Merge: c9436765b4 ed0b22ac70
Merge branch 'main' into dev
2023-07-18 15:17:31 +08:00
halx99 a858d08cc3 FIx GL error 2023-07-18 15:16:29 +08:00
halx99 3d4b03b6a2 Fix UWP build
- Use compatible GLES API: glGetActiveUniform
- glGetActiveUniformName not present in both GLES3 and GLES2
2023-07-18 00:10:57 +08:00
halx99 dcd408c636 Sync compiled shaders for UWP [skip ci] 2023-07-18 00:09:00 +08:00
halx99 1c669912b5 More easy for dev 2023-07-17 20:51:28 +08:00
Deal a38126b113 Update axmolver.h.in [skip ci]
The main branch still  1.0.x compatible
2023-07-17 13:14:26 +08:00
Deal 071d9aa8ea Remove gitter [skip ci]
It's only bakup IM room, discord is preferred
2023-07-17 12:39:19 +08:00
Turky Mohammed d3ee6c41c3 Implement `Uniform Buffer Objects` in OpenGL (#1277) 2023-07-17 11:39:12 +08:00
halx99 d2d8cd9366 Fix glslcc cmdline error 2023-07-17 08:14:13 +08:00
halx99 bc6f8802e6 Remove binding index for shader uniform block
Not required
2023-07-16 22:10:48 +08:00
halx99 97a76423c4 Fix cmake option not working 2023-07-16 21:58:26 +08:00
halx99 a5e4ab17f6 Auto enable early features in branch 'dev' 2023-07-16 15:19:29 +08:00
halx99 e34fe4ba98 Fix light num configure type 2023-07-16 14:38:06 +08:00
halx99 b2fdbb9b21 Commits migrated engine builtin shaders 2023-07-16 14:15:14 +08:00
halx99 3ab3249700 Update glslcc to 1.8.1
Add dual outputs support, this is useful to handle normal map preprocessor
2023-07-16 14:14:41 +08:00
RH 95f352e0d0 Invert if condition checking for existence of the axmol bin path in the user path env variable (#1275)
Make list mutable to allow for inserting new path
2023-07-16 13:51:36 +08:00
halx99 ac778081d1 Remove unnecessary light define checks 2023-07-16 00:42:16 +08:00
halx99 09d8f849fe Fic ci 2023-07-15 23:52:25 +08:00
halx99 9a384e39f2 Merge: 412e398651 1daf87c768
Merge branch 'main' into dev
2023-07-15 22:45:26 +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
Deal(涓€绾跨伒) c5a61124c0 Add chat badges [skip ci] 2023-07-15 11:25:48 +08:00
halx99 2b30d8002f Merge: 7afdd4f2c1 e5b197776c
Merge branch 'main' into dev
2023-07-15 01:17:32 +08:00
halx99 e34d02eb7d Fix build1k cmake setup 2023-07-15 01:17:15 +08:00
halx99 c476f8b117 Add cmake option AX_ENABLE_EARLY_FEATURES 2023-07-15 01:02:13 +08:00
halx99 8e39354e99 Merge: 83a830d011 cfcafd517a
Merge branch 'main' into dev
2023-07-15 01:00:31 +08:00
Deal(涓€绾跨伒) 4867fc8f2e Update pull_request_template.md (#1270) 2023-07-15 00:21:23 +08:00
halx99 c6b575e666 Revert define on shader, not suitable glslcc 2023-07-14 23:21:51 +08:00
halx99 42fcb1f86e glslcc workflow: metal init commit 2023-07-14 23:07:47 +08:00
RH 0c17a35fa8 Fix for crash in TextureCache test (#1267) 2023-07-11 21:55:17 +08:00
halx99 aeb6268f1c Fix cpp-tests shader loads 2023-07-11 16:40:49 +08:00
halx99 17a3e6408b Re-enable flat-ubos 2023-07-11 15:43:50 +08:00
halx99 c064124802 [GLSLCC] Remove spec defines, because the behavior incorrect 2023-07-10 17:02:20 +08:00
halx99 5d7a86a1b9 Merge: 89a739a8ea 09a3a950ae
Merge branch 'dev' into 1.1-dev
2023-07-10 15:57:00 +08:00
j-jorge fcdbd9968e Add missing include guards. (#1265) 2023-07-10 08:47:20 +08:00
RH 6bc2deeba8 Update Sprite::getQuad() to return const reference (#1260) 2023-07-09 19:00:12 +08:00
RH ce590c24a0 Fix for crashes in several tests (#1259) 2023-07-09 14:45:41 +08:00
halx99 ed6ec7a32d [GLSLCC] Suppression macro not defined errors 2023-07-09 12:04:58 +08:00
halx99 7c410f8b25 Bump new shader workflow
1. Add compiled shader dir `axslc` to search path for win32,linux
2. ProgramManager: register shader program by shader name
3. modify all shader  define from sources to name in Shader.cpp/Shader.hpp
4. Remove shader version define and precision decls for GLES
2023-07-08 18:47:06 +08:00
halx99 25077669c8 For bot happy 2023-07-07 04:05:56 +08:00
halx99 acc47b3281 Bump 1.1.0 2023-07-06 20:37:59 +08:00
Deal(涓€绾跨伒) 7771d4f7b1 Fix ci 2023-07-06 19:36:27 +08:00
halx99 94b5705bd3 Improve cmake script
- glslcc helper function
- Rename ax_add_shader to ax_target_compile_shaders
- Provide argument FILES for specify single or multi shader
source files support, i.e.
ax_target_compile_shaders(target_name FILES 1.frag 1.vert)
- Rename all _AX_ROOT_PATH to _AX_ROOT
2023-07-06 19:21:36 +08:00
halx99 0d5addaf39 Update setup.py to setup.ps1 in cmake [skip ci] 2023-07-06 14:00:21 +08:00
Deal(涓€绾跨伒) 27e66df931 Use glad for android GLESv3 support 2023-07-04 17:34:12 +08:00
Deal(涓€绾跨伒) a4fbe9c598 Fix CMakeLists.txt 2023-07-03 21:16:33 +08:00
halx99 7cb9aac41e Rename option `AX_USE_COMPAT_GL` to `AX_USE_ANGLE` 2023-07-03 20:35:55 +08:00
j-jorge 0af6db6345 Add missing include guard in NinePatchImageParser.h (#1248) 2023-07-01 08:53:09 +08:00
j-jorge 049db01a8a UserDefault: check the result of posix_ftruncate. (#1249) 2023-07-01 08:51:29 +08:00
j-jorge b8202ed918 Fix missing return value in EditBoxImplLinux::getNativeDefaultFontName(). (#1250) 2023-07-01 08:49:17 +08:00