Commit Graph

169 Commits

Author SHA1 Message Date
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
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 7a40c94e2a Check vao creation 2023-08-09 21:46:03 +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 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 5a68442d1e Improve code style 2023-08-01 12:00:31 +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 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 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 71c2d3a3b1 Init axslc search path at ProgramManager init 2023-07-20 10:20:06 +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 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