Commit graph

3434 commits

Author SHA1 Message Date
Felipe Alfonso
6e35817675 Fixed issue with multiple "texture not bound to unit X" webgl warning 2016-07-26 11:49:21 -04:00
photonstorm
3e1595ffaf Removed debugger calls. 2016-07-26 14:57:48 +01:00
photonstorm
f246c276cb Multi-Texture support has now been built into our version of Pixi. This can offer dramatic performance increases in WebGL games on GPUs that support multiple texture bindings (which is most of them these days).
WebGLRenderer.setTexturePriority is the method used to set the priority of textures when the GPU supports multi-texture batching.

Rope has two new properties `textureIndices` and `textureIndex` to handle multi-texture support.

Strip has two new properties `textureIndices` and `textureIndex` to handle multi-texture support.

The following shaders have all been updated to support multi-textures: `ComplexPrimitiveShader`, `PixiFastShader`, `PixiShader`, `PrimitiveShader`, `StripShader`.

WebGLFastSpriteBatch.vertSize was increased from 10 to 11.

BaseTexture.textureIndex is a new property that controls the index of the texture within the GPU texture cache. Usually you don't change this yourself, and use `renderer.setTexturePriority` instead, but the property is public and available for more advanced use-cases.

CanvasRenderer.setTexturePriority is an empty function, but included to allow you to simply call `game.renderer.setTexturePriority` without first having to wrap that in a WebGL check.
2016-07-26 14:56:12 +01:00
photonstorm
dfaf0b99dd Merge branch 'multitexture-gl' into dev 2016-07-26 14:47:26 +01:00
photonstorm
2318fec65c Start of a Particle base class. 2016-07-26 14:31:36 +01:00
photonstorm
86affde81b The file pixi/utils/Polyk.js has been removed, as it was no longer used with Pixi or Phaser (we replaced it with EarCut a while ago) 2016-07-26 14:30:06 +01:00
Filip Nedyalkov
566c781f26 Merge remote-tracking branch 'refs/remotes/photonstorm/dev' into display-object-container-dimensions-fix 2016-07-26 14:10:15 +03:00
Filip Nedyalkov
c56bc766cc Overrided getLocalBounds() for PIXI Sprite, Strip and Graphics
Since they override the getBounds of the DisplayObjectContainer, the
getLocalBounds should also be overriden for them to properly work.
2016-07-26 14:01:35 +03:00
Felipe Alfonso
4d09b31560 Merge branch 'dev' into multitexture-gl 2016-07-25 15:50:57 -04:00
Richard Davey
9654a4b3c5 Consolidating Layers into View class. 2016-07-25 01:39:46 +01:00
Richard Davey
19e609185a Math.rotateToAngle takes two angles (in radians), and an interpolation value, and returns a new angle, based on the shortest rotational distance between the two. 2016-07-25 00:39:38 +01:00
Richard Davey
8d4a72c9d7 Phaser 2.7.0 Beta 3 2016-07-23 15:05:52 +01:00
Richard Davey
b69cae4206 The methods setStageReference and removeStageReference have been removed from all Pixi classes. Objects no longer have stage properties, or references to the Stage object. This is because no reference to the Stage is required for any calculations, and Phaser can only have 1 Stage, so adding and removing references to it were superfluous actions. 2016-07-23 14:31:17 +01:00
Richard Davey
ce764e098d As a result of changes in #2573 Graphics objects were calling updateLocalBounds on any shape change, which could cause dramatic performances drops in Graphics heavy situations (#2618). Graphics objects now have a new flag _boundsDirty which is used to detect if the bounds have been invalidated, i.e. by a Graphics being cleared or drawn to. If this is set to true then updateLocalBounds is called once in the postUpdate method (thanks @pengchuan #2618) 2016-07-23 12:52:35 +01:00
Richard Davey
fb1a7f13cb Merge pull request #2639 from fmflame/display-object-container-dimensions-fix
Fix for DisplayObject/DisplayObjectContainer - getting dimensions or bounds do NOT retrieve proper values
2016-07-23 12:18:06 +01:00
Richard Davey
02d078500c Merge pull request #2656 from leopoldobrines7/documentHidden-compatibility
Check if hidden is available first
2016-07-23 12:09:00 +01:00
Richard Davey
6947057427 The property checkCollision.none in the ArcadePhysics.Body class was available, but never used internally. It is now used and checked by the separate method. By setting checkCollision.none = true you can disable all collision and overlap checks on a Body, but still retain its motion updates (thanks @samme #2661) 2016-07-23 10:01:38 +01:00
Richard Davey
ab739bdce0 Added back in undefined Tileset check. 2016-07-23 09:43:20 +01:00
Richard Davey
46c20ab00a The property checkCollision.none has been removed from the ArcadePhysics.Body class. It was never used internally, so lead to confusion about its use. To disable a body, use body.enable = false (thanks @samme #2661) 2016-07-23 09:43:01 +01:00
photonstorm
30e9273eb8 Removed console.log. 2016-07-22 17:38:46 +01:00
photonstorm
3ba00bbf2d Loads of work on tilemap collision, and offset support. You can now collide with a tilemap no matter where it is on the screen, or which layer it's from. 2016-07-22 17:02:10 +01:00
photonstorm
0e25c5acac Revert getTiles call. 2016-07-22 14:08:54 +01:00
photonstorm
9fb27b6fe2 Moving all the getTiles calls back again, as it's just a bit TOO API breaking to move them, for the sake of a few KB. 2016-07-22 14:05:35 +01:00
Richard Davey
d8560eb3bc Fixed Tilemap collision. 2016-07-22 04:32:56 +01:00
Richard Davey
d14250304c Defs update. 2016-07-22 04:19:17 +01:00
Richard Davey
91b9513e7e TilemapLayer.getTileX, getTileY and getTileXY all now required a Phaser.TilemapLayer (or Phaser.TilemapLayerGL) as the first argument.
Tilemap.getRayCastTiles now requires a Phaser.TilemapLayer (or Phaser.TilemapLayerGL) as the first argument.

Tilemap.getTiles now requires a Phaser.TilemapLayer (or Phaser.TilemapLayerGL) as the first argument.
2016-07-22 04:10:55 +01:00
Richard Davey
0301330c2d jshint fixes. 2016-07-22 03:59:10 +01:00
Richard Davey
020cb01056 Canvas tilemap renderer fixes. 2016-07-22 03:55:21 +01:00
Felipe Alfonso
062c7cd95a Added setTexturePriority function to WebGLRenderer 2016-07-21 22:34:27 -04:00
Richard Davey
be92e41366 The private methods TilemapLayer._fixX, _unfixX, _fixY and _unfixY have been moved to `Tilemap. 2016-07-22 03:20:56 +01:00
Richard Davey
ef9f53e350 TilemapLayer.getRayCastTiles has been moved to Tilemap.getRayCastTiles.
TilemapLayer.rayStepRate has been moved to Tilemap.rayStepRate.
TilemapLayer.getTiles has been moved to Tilemap.getTiles.
2016-07-22 03:03:50 +01:00
Felipe Alfonso
1755bfd779 Merge branch 'dev' into multitexture-gl 2016-07-21 21:51:14 -04:00
Felipe Alfonso
44774d648e Final implementation related to multi texture batching 2016-07-21 21:49:29 -04:00
Richard Davey
f669202fb4 Loads of refactoring. Removed the internal layer creation, added in first/last gid detection, sorted out multiple identical layer creation. 2016-07-22 02:39:35 +01:00
Richard Davey
9eff79f2c2 Phaser.Tileset has a new property lastgid which is populated automatically by the TilemapParser when importing Tiled map data, or can be set manually if building your own tileset. 2016-07-22 02:35:33 +01:00
Richard Davey
91e7b2ca9c Updated properties. 2016-07-22 00:30:55 +01:00
Pete Baron
8c6fec0e97 Apply "half pixel correction" to the source coordinates for tiles when drawing with WebGL. 2016-07-22 11:30:06 +12:00
Richard Davey
8832680aa0 Exposed 'width' and 'height' properties on TilemapLayer, so it can be resized and update all children. 2016-07-22 00:09:31 +01:00
Richard Davey
ed9793e06b Removed un-needed baseTexture dirty call. 2016-07-21 22:55:10 +01:00
Richard Davey
e384724b28 Doesn't need to extend DoC, can extend DO instead. 2016-07-21 22:54:39 +01:00
photonstorm
6661952d50 Masses of changes to get tilemap layer display dimensions filtering down to linked child layers. Also allowed offset to work correctly, and fixed the display sizes with offset bounds. Exposed offset as layer.x/y. Need to duplicate in canvas variation. 2016-07-21 16:56:17 +01:00
Pete Baron
d994641d52 Don't scale the clip offset value when the layer is scaled. 2016-07-22 00:23:05 +12:00
Pete Baron
3faca89831 oops my bad: rename 2016-07-22 00:12:56 +12:00
Pete Baron
7c2dae0773 Add offset parameter to TilemapLayerGL and use it with clipping to draw a view into a map at a specified location and size in the game window. 2016-07-22 00:02:05 +12:00
Richard Davey
c36babcc1c Code formatting and docs updates. 2016-07-21 10:45:23 +01:00
Felipe Alfonso
40b4b2dbd0 added multi texture to WebGLFastSpritebatch and Strip (wip) 2016-07-21 01:57:39 -04:00
Pete Baron
aecbd7c267 Add width/height to debug log for new layers. 2016-07-21 17:13:12 +12:00
Pete Baron
29c77e10d7 Send layer width/height to PIXI.Tilemap (previously these were ignored and forgotten after the c'tor).
Modify resize to set displayWidth/displayHeight only.
2016-07-21 17:12:46 +12:00
Pete Baron
008de253ce Add displaywidth/height parameters to PIXI.Tilemap c'tor and save them.
Clean up _initWebGL to remove unused GL buffers.
Clean up _renderBatch to remove unused srcWide/srcHigh variables.
Set new Tile Shader's clipping uniform using displayWidth/Height.
2016-07-21 17:10:51 +12:00
Pete Baron
5f55fb095e Tile shader uses clipping dimensions when drawing. 2016-07-21 17:07:50 +12:00