- more options for batching (faster)
- less flushing in between commands (faster)
- less renderer code (easier to maintain)
- less VBO/VAO (less memory)
- uses temporary buffer for faster rendering (more memory)
- QuadCommand is just a subclass of TriangleCommand (simpler)
- but statically it allocates indices internally (like any TriangleCommand) (more
memory, but not that much)
- adds more tests for SpritePolygon
- adds test for batching Tri + Quad command
- and fixes some other bugs
Squashed commit of the following:
commit cce893a9114da5dda91a895e4e661894f365e2c7
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Mon Feb 8 06:56:57 2016 -0800
QuadCommand: indices are static
thanks @Darinex
commit e5fd1c14e93d2f07b8266bfec03cf7206d348f59
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sun Feb 7 19:18:42 2016 -0800
little improvements in xcode proj management
commit 6cd29764e01ad300f4e89e62aa6b399f73e94f01
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sun Feb 7 19:05:52 2016 -0800
Renderer improvments: TriangleCommand and QuadCommand merged
- more options for batching (faster)
- less flushing in between commands (faster)
- less renderer code (easier to maintain)
- less VBO/VAO (less memory)
- uses temporary buffer for faster rendering (more memory)
and fixes some other bugs
Squashed commit of the following:
commit af7a209435c5f2430c31ab3ebcc7f45051eacb1a
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sun Feb 7 18:55:27 2016 -0800
adds test for batching quads and tris
commit 25816e3eaeffd4b0cfe5fa15e97ff84e9013b8be
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sun Feb 7 18:40:15 2016 -0800
cleanup renderer
commit 7f9785056681756c865d603516c7e14c46040e82
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sun Feb 7 15:34:48 2016 -0800
clean up docs
commit 92a8b679dd404e4ca2839d85e2bd925195b12996
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Sun Feb 7 15:18:52 2016 -0800
QuadCommand converted to Triangles command
commit 7e21ec12d3781f6964b4d639cfa4bdc79eb8ae80
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Fri Feb 5 16:17:29 2016 -0800
adds missing files... new test as well
commit d1bd4391785515bdc2e1bebbeb3f321f983b51f2
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Fri Feb 5 14:35:41 2016 -0800
more tests for poly sprites
commit 5775a25b1046671bd0f5af4c5ab52b308b34bb39
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Fri Feb 5 00:30:13 2016 -0800
malloc instead of std::vector
commit 14a5d45cc978c55a182c03f181ca2bc603776561
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Thu Feb 4 21:40:46 2016 -0800
little optimization
commit 5667cb2b62416f8a439a54c3973d5841fbe1b68b
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Thu Feb 4 19:13:13 2016 -0800
quad works as expected
commit 462aef05baa6586591882faa366839bead4be068
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Thu Feb 4 15:22:59 2016 -0800
works
commit c789e6c42811278563c7682b5620296ae8d84aeb
Merge: d6c3729 de62924
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Thu Feb 4 14:08:49 2016 -0800
Merge branch 'v3' into uniform_matrix_auto
commit d6c37297954af752ebf42ec5f71e5e2fe28c9cc2
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Thu Feb 4 13:54:07 2016 -0800
works ok...
commit 45c288631989ea735cc31ec5aa683d9d41aacab3
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Thu Feb 4 12:58:34 2016 -0800
quad works!
commit 7137cff51df09adee7129738cea2b69da090756e
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Wed Feb 3 16:19:34 2016 -0800
more optimizations... WIP... doesn't work yet
commit a8324c1a9acb6b82102e05eee6e5e5f341306c7b
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Tue Feb 2 21:59:42 2016 -0800
compiles in release mode
more tests... better threshold
commit 884ffc756e7520fcbb9252260181538ec81b8368
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date: Tue Feb 2 17:21:32 2016 -0800
initial uniform_auto_matrix commit
Changes the CC_matrix uniform in runtime depending on whether the command can be batched or not.
Lot of things missing, though... like performance tests.
2. `charsWritten` is not used, we should either delete it or use it. Because we don't check the bytes written, I think we can just delete it.
3. We don't need (logLength+1) space for `logBytes`, because `logBytes` returned by calling glGetShaderInfoLog(shader, logLength, nullptr, logBytes) takes `logLength` bytes at most, including the ending null character, i.e. `(strlen(logBytes) + 1 == logLength)` always yield true. According to the offical opengles sdk docs: https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetShaderInfoLog.xml.
and
https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetShaderiv.xml
4. We don't need `logBytes[logLength] = '\0';`, because `logBytes` returned is already null-terminated.