664 Commits

Author SHA1 Message Date
Kirill Vainer
5be03af564 material: fix sort id unit test failure 2016-04-02 15:08:26 -04:00
Kirill Vainer
59614e177c MPO: implement overrides on uniforms and add test 2016-04-02 15:08:21 -04:00
Kirill Vainer
2b35f288c2 MPO: implement propagation and add test
Conflicts:
	jme3-core/src/main/java/com/jme3/scene/Node.java
	jme3-core/src/main/java/com/jme3/scene/Spatial.java
2016-04-02 15:08:17 -04:00
Kirill Vainer
280733c1ce material: move technique logic into its own package 2016-04-02 15:04:45 -04:00
Kirill Vainer
10a87ce24e add StaticPassLightingLogic 2016-04-02 15:04:40 -04:00
Kirill Vainer
cb5c1395b3 initial implementation of MPO (untested!) 2016-04-02 15:04:33 -04:00
Kirill Vainer
80af02e1f3 syntax error fixes 2016-04-02 15:04:21 -04:00
Kirill Vainer
0f1c35c5f0 minor formatting changes
Conflicts:
	jme3-lwjgl/src/main/java/com/jme3/system/lwjgl/LwjglContext.java
2016-04-02 15:03:52 -04:00
Kirill Vainer
e8df94de1c FastMathTest: ignore failing test (for now) 2016-04-02 14:57:33 -04:00
Kirill Vainer
6a47319dbb DefineList: fix build error
Also add additional unit tests for DefineList.
2016-04-02 14:57:21 -04:00
Kirill Vainer
9d035f747a Add the new material system
Also includes some unrelated tests

Conflicts:
	jme3-core/src/main/java/com/jme3/renderer/RenderManager.java
	jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java
2016-04-02 14:57:10 -04:00
Kirill Vainer
49339497fa Uniform: fix crash when using vector4array 2016-04-02 14:47:59 -04:00
Kirill Vainer
e6d829fac4 GLRenderer: added fast uniforms - still need to fix Uniform.clear() 2016-04-02 14:47:53 -04:00
Jan Ivenz
75791883ec For LightFilter to be implementable frustumCheckNeeded and intersectsFrustum need to be accesible. 2016-03-30 22:14:24 +02:00
Jan Ivenz
98a9f5c628 Fixed shader generation bug for array variables. 2016-03-30 21:58:27 +02:00
Jan Ivenz
c6143ae640 Rendering depth to texture arrays. 2016-03-30 21:58:26 +02:00
Jan Ivenz
4162fb9447 Texture arrays are now allowed as color buffer render targets. 2016-03-30 21:58:25 +02:00
javasabr
98f1bfc0c1 fixed NPE 2016-03-29 06:48:47 +03:00
Paul Speed
68ace33dbd Fixed an NPE when jmeClone() was asked to clone a null. 2016-03-28 11:06:29 -04:00
Paul Speed
78a5a25fc1 Added the app state varargs constructor to LegacyApplication and
modified SimpleApplication to use it.
2016-03-28 11:03:58 -04:00
Paul Speed
3c56afeae6 Converted Application to an interface and renamed the old Application to
LegacyApplication.  This is a breaking change for any class extending Application
directly.
And regardless, if you refer to Application then you will need to clean build
your app... and any of your dependencies that also refer to Application.  Basically,
anything using an AppState will need to be clean built against the next alpha.
2016-03-28 01:47:33 -04:00
Paul Speed
ab6fb03171 Converted spatial over to use Cloner to do its various
deep and semi-shallow cloning.  I'd be very surprised if nothing
is broken as there is only so much testing I can easily do.
Also various fixes for places I forgot to call super.cloneFields().
2016-03-27 06:14:52 -04:00
Paul Speed
f7c16e878e Modified the clone function lookup to support inheritence.
It's just too useful for things like Mesh which has a dozen
or more subclasses... more useful than the limitations.
2016-03-27 05:38:43 -04:00
Paul Speed
2028f3b3f8 Added 'finer' logging for the clone() method to provide visibility for
debugging.
Added a setClonedValue() method to force uncloned or precloned references
in some specific use-cases.
Added an isCloned() method to tell if an object has already been cloned
in this cloner's 'session'.
2016-03-27 04:53:12 -04:00
Paul Speed
c6aac78f42 Added a clone() method and implement Cloneable.
Removed whitespace from the ends of lines.
2016-03-27 04:51:31 -04:00
Paul Speed
eda92656dd Updated AudioNode with a JmeCloneable cloneFields() method
to clone its fields.  Some small change in behavior since the new
methods will clone the filters, too, to avoid 'user surprise'.
2016-03-26 04:19:59 -04:00
Paul Speed
2f246b25bb Added cloneFields() method to BitmapText thought it's probably
fruitless since BitmapText isn't even properly saveable and couldn't
possibly have worked for any dynamic text with the old clone()
method.
Also a bunch of white space changes removing spaces at the ends of
lines.
2016-03-26 04:08:51 -04:00
Paul Speed
3f1c696e26 Adding a comment about the strange shared fields in BitmapTextPage
that I'm not going to touch with a ten foot pole.
2016-03-26 03:55:58 -04:00
Paul Speed
7665fef2de ParticleEmitter and related classes (ugh) now implement JmeCloneable.
It hasn't replaced the old clone() method yet and is still untested.
2016-03-26 03:46:48 -04:00
Paul Speed
6e999aa79b Tired of committing around the generated version.prpoerties
file... so I'm remove it and fixing it with a .gitignore.
2016-03-26 03:45:34 -04:00
Rémy Bouquet
27f6f85dab Merge pull request #454 from MeFisto94/MECloneIssue
Allow MotionEvents to be cloned (NPE)
2016-03-26 00:39:09 +01:00
Nehon
07088452ff Fixed binormal calculation in Single pass lighting 2016-03-25 23:49:07 +01:00
Paul Speed
2bdb3de2f5 Started implementing the JmeCloneable stuff for Spatial
and Mesh.  Still need to catch some of the outer subclasses of
Node and Geometry.  Nothing is hooked up or tested yet.
2016-03-25 04:31:10 -04:00
MeFisto94
665908cdee Improved the MotionEvent Cloning to not throw an NPE or edit constant Vectors 2016-03-24 20:52:17 +01:00
Rémy Bouquet
911b4be868 Merge pull request #455 from MeFisto94/SplineIssue
Fixed a NPE when Serializing a Spline without points.
2016-03-23 23:01:21 +01:00
Nehon
5970444b9c Fixed an issue with previous commit on shadows, in the glsl100 shader 2016-03-22 18:08:07 +01:00
Nehon
493855bac9 LineWidth is now a RenderState parameter, One can change the lineWidth used to render a mesh wireframe or a mesh in Lines mode by using material.getAdditionalRenderState().setLineWidth(value) 2016-03-20 21:36:28 +01:00
MeFisto94
8477fa781b Fixed another NPE when missing serialized waypoints and fixed having different names for write/read 2016-03-20 20:25:39 +01:00
Nehon
c4525aa550 Fixed MotionEvent clone for Spatial as it was resulting in controls added twice to the spatial. Also removed a useless line in all the constructors. 2016-03-20 18:56:29 +01:00
MeFisto94
23fe0658a6 Fixed a NPE when Serializing a Spline without points. Also fixed a Typo. 2016-03-20 12:45:19 +01:00
MeFisto94
15c9c083cd Allow MotionEvents to be cloned 2016-03-20 10:11:04 +01:00
Paul Speed
8b1ddbe60f First round of getting JmeCloneable implemented... added
support for Cloner to the controls that implemented cloneForSpatial().
Unused until spatial cloning is implemented.
2016-03-20 02:47:16 -04:00
Nehon
dff4befafb Added an option to not render backfaces shadows with the shadow renderer and the shadow filter. It's the default for the renderer but not for the filter as it may have some edges artifacts. 2016-03-17 17:58:41 +01:00
Nehon
32be69f3e6 Remove a lot of duplicate code for shadows 2016-03-17 14:34:18 +01:00
Rémy Bouquet
c3d12f0e4a Merge pull request #444 from InShadow/master
Added public method getGeometry on Batch class.
2016-03-16 09:20:29 +01:00
Paul Speed
0b487ee9f3 Moved the file writing in screen shot app state to its own
method... 1) because it's a little cleaner, 2) because it means
subclasses can hook it if desired.
2016-03-13 04:44:54 -04:00
Nehon
f391b9c3aa Made AbstractControl Implement Cloneable 2016-03-12 19:07:41 +01:00
Nehon
cb56fd88eb For some reason the J3MLoader never loads the material name. Not that it's really important, but since we have the name field... let's read it... 2016-03-11 17:45:29 +01:00
Paul Speed
f83c7006f0 Removed some cloneForSpatial() methods that weren't doing anything
that the super class would do.
Adding @Override to cloneForSpatial() methods in jme3-core controls
and CloneableTracks.
2016-03-11 05:46:31 -05:00
Paul Speed
10947e8b50 Modified the JmeCloneable's clone() method to be jmeClone() so that
implementing objects will still be able to keep a regular public
clone() method that may do their own selective deep cloning.  This
allows explicit demarcation between the normal 'user' facing clone()
and the two step cloning process used by Cloner.

Specifically, this will let Spatial continue to have a clone() method
that operates as it does today... with its new guts essentially calling
a properly configured Cloner.
2016-03-10 04:25:43 -05:00