Commit graph

350 commits

Author SHA1 Message Date
Richard Davey
6dc07dad3e Added ColorMatrix class and proper verts 2020-11-12 18:09:37 +00:00
Richard Davey
a6ba0539de Update PostFXPipeline.js 2020-11-11 17:47:24 +00:00
Richard Davey
1ff6b0dce5 Expose Utility Pipeline 2020-11-11 17:46:28 +00:00
Richard Davey
b9cc4bfb5b Create UtilityPipeline.js 2020-11-11 17:46:03 +00:00
Richard Davey
8e7171ca79 Use fbo stack and free-up callback hooks 2020-11-10 17:26:56 +00:00
Richard Davey
47009779fb Hard-code the topology 2020-11-10 15:50:17 +00:00
Richard Davey
84f6849ad6 Fixed Bitmap Mask 2020-11-10 14:33:28 +00:00
Richard Davey
7a5165c87b Limit batch size to 1 2020-11-10 12:35:01 +00:00
Richard Davey
eda0ca8a75 Use GLenum value and limit batch size to 256 2020-11-10 12:34:53 +00:00
Richard Davey
e7319907c7 PostFX Pipeline only needs a single quad 2020-11-10 11:59:28 +00:00
Richard Davey
ca52436340 Removed Camera Pipeline 2020-11-10 11:59:12 +00:00
Richard Davey
94d2889783 Moved setTexture2D to pipeline class 2020-11-10 11:58:53 +00:00
Richard Davey
cb7a998ea0 Added onBatch support 2020-11-09 12:17:45 +00:00
Richard Davey
abe97b18fd Remove drawFillRect and no batchTexture post fx 2020-11-06 17:22:05 +00:00
Richard Davey
167f50f28f Added new PostFX Pipeline to extend from 2020-11-06 15:35:05 +00:00
Richard Davey
701b899511 Update MultiPipeline.js 2020-11-05 18:05:58 +00:00
Richard Davey
18d2de8f1c Update SinglePipeline.js 2020-11-05 18:05:49 +00:00
Richard Davey
e9efc5e8f2 Invokes pre and post batch functions. 2020-11-04 18:02:22 +00:00
Richard Davey
305106bebe Correct sampler ID 2020-11-04 18:01:11 +00:00
Richard Davey
ebe5ba1a0a New attributes, removed un-used properties, fixed JSDocs 2020-11-03 11:32:05 +00:00
Richard Davey
3caa51a938 Update GraphicsPipeline.js 2020-11-02 16:20:16 +00:00
Richard Davey
ca4168e5d0 New Camera Pipeline, better boot handling, tidied up docs 2020-10-30 17:50:58 +00:00
Richard Davey
d39968e0a1 Parameter not needed 2020-10-29 17:22:39 +00:00
Richard Davey
024f13f2ba No longer use uViewMatrix or uModelMatrix 2020-10-29 14:37:52 +00:00
Richard Davey
9e4141e18b Pass the Game Object 2020-10-28 18:13:34 +00:00
Richard Davey
c5b538afcd Added the new Graphics Pipeline 2020-10-28 17:39:54 +00:00
Richard Davey
d6ecea8d4d Use the new attributes format 2020-10-28 17:39:31 +00:00
Richard Davey
92c365a881 Removed all Graphics methods and related properties. 2020-10-28 16:53:31 +00:00
Richard Davey
389b480777 Using new easier attribute config + moved some methods to WebGLPipeline 2020-10-28 16:15:09 +00:00
Richard Davey
15d8eabf17 Single pipeline updated so it can easily extend Multi now 2020-10-28 16:14:42 +00:00
Richard Davey
7ad02d6c0d Removed mvp component 2020-10-26 14:05:07 +00:00
Richard Davey
291f588110 Removed the mvp component. Pipelines no longer need this. 2020-10-26 14:04:01 +00:00
Richard Davey
272727459f Use new shader property 2020-10-21 18:15:28 +01:00
Richard Davey
cc167e158f Much better effect from the light shader 2020-10-14 11:57:58 +01:00
Richard Davey
b1a5ce7f55 Testing new batched lights 2020-10-13 18:17:30 +01:00
Richard Davey
8708255948 Removed Layer3D Game Object and old MeshPipeline 2020-10-13 10:56:21 +01:00
Richard Davey
dda4431366 Merged the Layer3D Game Object and pipeline back in for now 2020-10-07 17:44:36 +01:00
Richard Davey
706d02873a Fixed issue with camera flash/fade not working 2020-10-05 13:44:29 +01:00
Richard Davey
3baecb19d4 Moved old mesh pipeline and code into own folder 2020-10-01 17:56:49 +01:00
Richard Davey
e004fa47fc Creating a Bitmap Mask from a texture atlas that was then used to mask another Game Object also using that same texture atlas would throw the error GL_INVALID_OPERATION : glDrawArrays: Source and destination textures of the draw are the same.. It now renders as expected. Fix #4675 2020-09-23 18:10:12 +01:00
Richard Davey
232f8e0ebc Updated to use new uniforms and fixed renderWebGL parameters 2020-09-23 17:55:03 +01:00
Richard Davey
b350ebddcc Removed duplicate code. 2020-09-23 11:42:14 +01:00
Richard Davey
183e68580f Fixed dirty flag reset 2020-09-22 11:45:49 +01:00
Richard Davey
bd25dbc355 Added per-model cull mode 2020-09-22 11:39:26 +01:00
Richard Davey
afe765a2cf Fix component properties 2020-09-21 18:24:12 +01:00
Richard Davey
893453f840 New uniforms handler, new cache and dirty checks 2020-09-21 15:57:38 +01:00
Richard Davey
56caeb126f Renders whole buffer in a single draw with no vertex iteration 2020-09-21 00:17:14 +01:00
Richard Davey
9a1b252a11 Use shouldFlush 2020-09-18 17:50:57 +01:00
Richard Davey
0013db3747 Created new Mesh Pipeline 2020-09-18 17:50:20 +01:00
Richard Davey
5e5b8c0938 The WebGLPipeline.shouldFlush method now accepts an optional parameter amount. If given, it will return true if when the amount is added to the vertex count it will exceed the vertex capacity. The Multi Pipeline has been updated to now use this method instead of performing the comparison multiple times itself. 2020-09-15 11:54:12 +01:00
Richard Davey
3fa0070e50 Now uses white texture and tintEffect mode 1 2020-09-14 15:03:04 +01:00
Richard Davey
4ade25fc79 No longer read private values for tint
The `Multi Pipeline`, `Bitmap Text`, `Render Texture`, `Text`, `TileSprite` and `Camera` now all read the tint values from the public properties instead of the private `_tintTL` etc ones. They also now set the `tintEffect` value directly from the `tintFill` property, removing another conditional check.
2020-09-14 11:05:09 +01:00
Richard Davey
67e49b515c The PipelineManager.resize method along with WebGLPipeline.resize and anything else that extends them no longer receives or uses the resolution parameter. 2020-09-12 11:57:16 +01:00
Richard Davey
da4c387d86 Reference fixes 2020-09-09 13:21:38 +01:00
Richard Davey
7765016caa Pipeline constants so we can avoid using strings elsewhere 2020-09-09 13:05:17 +01:00
Richard Davey
5224985e7f Update BitmapMaskPipeline.js 2020-09-07 16:03:18 +01:00
Richard Davey
ca99c4564f Added reset property to Bind to get new vertex attrib locations 2020-08-25 13:24:56 +01:00
Richard Davey
9a1dc640f8 Fix gl access 2020-08-21 16:17:29 +01:00
Richard Davey
0dd07333af Updated to use MultiPipeline 2020-08-21 16:14:59 +01:00
Richard Davey
5c39254f36 Testing new config approach 2020-08-21 16:04:26 +01:00
Richard Davey
600385ac29 A brand new pipeline for single-texture custom pipelines 2020-08-21 16:01:53 +01:00
Richard Davey
57040554ef Renamed the pipelines to make them less ambiguous and sorted out lots of config properties 2020-08-21 16:01:39 +01:00
Richard Davey
14ad202adc Use new Utils function 2020-08-21 09:44:52 +01:00
Richard Davey
4baa0522b9 Bumping to 3.50 2020-07-31 13:41:29 +01:00
Richard Davey
bf4c475e85 Floor drawFillRect values 2020-07-30 18:10:23 +01:00
Richard Davey
86f35ef9cf Updated docs 2020-07-23 17:35:47 +01:00
Richard Davey
27426dd0b6 Testing RenderTextures (currently broken, will fix next week) 2020-07-17 18:08:39 +01:00
Richard Davey
491ca62373 The TextureTintStripPipeline now extends TextureTintPipeline and just changes the topolgy, vastly reducing the filesize. 2020-07-17 17:04:40 +01:00
Richard Davey
8bb49332a9 Always set rotation 2020-07-17 13:55:50 +01:00
Richard Davey
3dd6d8a1a4 Remove forceZero and added textureUnit 2020-07-16 16:16:57 +01:00
Richard Davey
5e8c28d468 Removed batchTexture as it's no longer needed 2020-07-16 16:16:42 +01:00
Richard Davey
76de5c246a Update ForwardDiffuseLightPipeline.js 2020-07-16 15:51:12 +01:00
Richard Davey
e7957b9380 Added getNormalMap and setGameObject 2020-07-16 15:18:02 +01:00
Richard Davey
0c411e9e7e Removed currentUnit and batchSprite forceZero 2020-07-16 15:13:47 +01:00
Richard Davey
38e7495b61 Fixed default normal map so all Game Objects will now render
* The pipeline now works with Game Objects that do not have a normal map. They will be rendered using the new default normal map, which allows for a flat light effect to pass over them and merge with their diffuse map colors.
2020-07-16 11:04:10 +01:00
Richard Davey
84968f502f Update ForwardDiffuseLightPipeline.js
* The pipeline will no longer look-up and set all of the light uniforms unless the `Light` is dirty.
* The pipeline will no longer reset all of the lights unless the quantity of lights has changed.
2020-07-16 03:24:19 +01:00
Richard Davey
d7cf9da819 Added location cache 2020-07-16 03:13:10 +01:00
Richard Davey
4ab9604102 Lots of updates to this pipeline
* The `ForwardDiffuseLightPipeline.defaultNormalMap` property has been removed as it's no longer required.
* The `ForwardDiffuseLightPipeline.boot` method has been removed as it's no longer required.
* The `ForwardDiffuseLightPipeline.onBind` method has been removed as it's no longer required.
* The `ForwardDiffuseLightPipeline.setNormalMap` method has been removed as it's no longer required.
* The `ForwardDiffuseLightPipeline.bind` is a new method that handles setting-up the shader uniforms.
* The `ForwardDiffuseLightPipeline.batchTexture` method has been rewritten to use the Texture Tint Pipeline function instead.
* The `ForwardDiffuseLightPipeline.batchSprite` method has been rewritten to use the Texture Tint Pipeline function instead.
2020-07-16 02:15:53 +01:00
Richard Davey
c6ffa0620e TextureTintPipeline.batchSprite and batchTexture has new parameters forceZero which forces use of texture unit zero. 2020-07-16 02:13:08 +01:00
Richard Davey
9c76ec0389 Large TextureTintPipeline refactor
* The Texture Tint vertex and fragment shaders have been updated to support the `inTexId` float attribute and dynamic generation.
* The Texture Tint Pipeline has a new attribute, `inTexId` which is a `gl.FLOAT`.
* `TextureTintPipeline.bind` is a new method that sets the `uMainSampler` uniform.
* The `TextureTintPipeline.requireTextureBatch` method has been removed, as it's no longer required.
* The `TextureTintPipeline.pushBatch` method has been removed, as it's no longer required.
* The `TextureTintPipeline.maxQuads` property has been removed, as it's no longer required.
* The `TextureTintPipeline.batches` property has been removed, as it's no longer required.
* `TextureTintPipeline.flush` has been rewritten to support multi-textures.
* `TextureTintPipeline.flush` no longer creates a sub-array if the batch is full, but instead uses `bufferData` for speed.
* `TextureTintPipeline.currentUnit` is a new property that holds the most recently assigned texture unit. Treat as read-only.
2020-07-15 17:05:55 +01:00
Richard Davey
7c742f95d2 Generate multi-texture shader source 2020-07-14 17:44:26 +01:00
Richard Davey
0003d278fd Updated to use new external MVP functions 2020-07-14 16:49:30 +01:00
Richard Davey
06c1336f41 Removed all functions from MVP except init and update and made them all external 2020-07-14 16:49:16 +01:00
Richard Davey
03ee36f9ba Finished JSDocs 2020-02-04 17:30:27 +00:00
Richard Davey
18120cb0d5 New Strip pipeline 2020-01-17 17:58:41 +00:00
Richard Davey
0af1303ba2 Added TextureTintStrip pipeline 2020-01-17 17:38:24 +00:00
Richard Davey
ff65e69cd1 Changed copyright date to 2020 2020-01-15 12:07:09 +00:00
Kolja Kutschera
c893ca6186 fix light2d using tileset from dynamictilemaplayer (#4167,#4079) 2019-10-26 00:56:43 +02:00
Gauthier Billot
7ffeb4785e Added currentNormalMapRotation and updated setNormalMapRotation 2019-10-06 20:31:29 +02:00
Richard Davey
5106b2c935 Animations with custom pivots, like those created in Texture Packer with the pivot option enabled, would be mis-aligned if flipped. They now render in the correct position, regardless of scale or flip on either axis. Fix #4155 2019-07-03 14:01:48 +01:00
Richard Davey
47b1d755a7 Fixed a bug in the WebGL and Canvas Renderers where a Sprite with a flipX or flipY value set would render the offset frames slightly out of place, causing the animation to appear jittery. Also, the sprite would be out of place by its origin. Fix #4636 #3813 2019-07-03 11:11:25 +01:00
Richard Davey
c0d58ee69e Better flip handling 2019-06-26 00:35:22 +01:00
Richard Davey
f323097714 Sprites need to flip the UV if the source is a GLTexture 2019-06-23 22:12:14 +01:00
Richard Davey
c91ed91ce3 License link update 2019-05-10 16:15:04 +01:00
Richard Davey
a6341a97a8 Fixed Types references 2019-05-09 15:32:53 +01:00
Richard Davey
2f48d68735 A shader can now be used as a bitmap mask 2019-05-01 11:12:31 +01:00
Richard Davey
08f4a0ccf4 Tidying up 2019-05-01 02:10:38 +01:00
Richard Davey
84e898fd90 Fixed nested bitmap mask issue 2019-04-29 14:45:54 +01:00
Richard Davey
80a0bf3f1a Re-apply stencil after a bitmap mask 2019-04-29 14:29:13 +01:00
Richard Davey
70b5b01db2 Restore previous framebuffer 2019-04-26 19:13:32 +01:00