* Some minor optimizations
* Disable dead zone check for mouse axes git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8732 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
2b89d5870e
commit
c6c4cf53a0
@ -262,8 +262,8 @@ public class InputManager implements RawInputListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void invokeAnalogsAndActions(int hash, float value, boolean applyTpf) {
|
private void invokeAnalogsAndActions(int hash, float value, boolean applyTpf, float deadZone) {
|
||||||
if (value < axisDeadZone) {
|
if (value < deadZone) {
|
||||||
invokeAnalogs(hash, value, !applyTpf);
|
invokeAnalogs(hash, value, !applyTpf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -276,6 +276,10 @@ public class InputManager implements RawInputListener {
|
|||||||
boolean valueChanged = !axisValues.containsKey(hash);
|
boolean valueChanged = !axisValues.containsKey(hash);
|
||||||
if (applyTpf) {
|
if (applyTpf) {
|
||||||
value *= frameTPF;
|
value *= frameTPF;
|
||||||
|
}else{
|
||||||
|
if (value != 0){
|
||||||
|
axisValues.put(hash, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int size = maps.size();
|
int size = maps.size();
|
||||||
@ -338,13 +342,13 @@ public class InputManager implements RawInputListener {
|
|||||||
} else if (value < 0) {
|
} else if (value < 0) {
|
||||||
int hash = JoyAxisTrigger.joyAxisHash(joyId, axis, true);
|
int hash = JoyAxisTrigger.joyAxisHash(joyId, axis, true);
|
||||||
int otherHash = JoyAxisTrigger.joyAxisHash(joyId, axis, false);
|
int otherHash = JoyAxisTrigger.joyAxisHash(joyId, axis, false);
|
||||||
invokeAnalogsAndActions(hash, -value, true);
|
invokeAnalogsAndActions(hash, -value, true, axisDeadZone);
|
||||||
axisValues.put(hash, -value);
|
axisValues.put(hash, -value);
|
||||||
axisValues.remove(otherHash);
|
axisValues.remove(otherHash);
|
||||||
} else {
|
} else {
|
||||||
int hash = JoyAxisTrigger.joyAxisHash(joyId, axis, false);
|
int hash = JoyAxisTrigger.joyAxisHash(joyId, axis, false);
|
||||||
int otherHash = JoyAxisTrigger.joyAxisHash(joyId, axis, true);
|
int otherHash = JoyAxisTrigger.joyAxisHash(joyId, axis, true);
|
||||||
invokeAnalogsAndActions(hash, value, true);
|
invokeAnalogsAndActions(hash, value, true, axisDeadZone);
|
||||||
axisValues.put(hash, value);
|
axisValues.put(hash, value);
|
||||||
axisValues.remove(otherHash);
|
axisValues.remove(otherHash);
|
||||||
}
|
}
|
||||||
@ -387,17 +391,18 @@ public class InputManager implements RawInputListener {
|
|||||||
// rawListeners.get(i).onMouseMotionEvent(evt);
|
// rawListeners.get(i).onMouseMotionEvent(evt);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// Do not use dead zone for mouse motion events
|
||||||
if (evt.getDX() != 0) {
|
if (evt.getDX() != 0) {
|
||||||
float val = Math.abs(evt.getDX()) / 1024f;
|
float val = Math.abs(evt.getDX()) / 1024f;
|
||||||
invokeAnalogsAndActions(MouseAxisTrigger.mouseAxisHash(MouseInput.AXIS_X, evt.getDX() < 0), val, false);
|
invokeAnalogsAndActions(MouseAxisTrigger.mouseAxisHash(MouseInput.AXIS_X, evt.getDX() < 0), val, false, 0);
|
||||||
}
|
}
|
||||||
if (evt.getDY() != 0) {
|
if (evt.getDY() != 0) {
|
||||||
float val = Math.abs(evt.getDY()) / 1024f;
|
float val = Math.abs(evt.getDY()) / 1024f;
|
||||||
invokeAnalogsAndActions(MouseAxisTrigger.mouseAxisHash(MouseInput.AXIS_Y, evt.getDY() < 0), val, false);
|
invokeAnalogsAndActions(MouseAxisTrigger.mouseAxisHash(MouseInput.AXIS_Y, evt.getDY() < 0), val, false, 0);
|
||||||
}
|
}
|
||||||
if (evt.getDeltaWheel() != 0) {
|
if (evt.getDeltaWheel() != 0) {
|
||||||
float val = Math.abs(evt.getDeltaWheel()) / 100f;
|
float val = Math.abs(evt.getDeltaWheel()) / 100f;
|
||||||
invokeAnalogsAndActions(MouseAxisTrigger.mouseAxisHash(MouseInput.AXIS_WHEEL, evt.getDeltaWheel() < 0), val, false);
|
invokeAnalogsAndActions(MouseAxisTrigger.mouseAxisHash(MouseInput.AXIS_WHEEL, evt.getDeltaWheel() < 0), val, false, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -942,7 +942,8 @@ public class Material implements Asset, Cloneable, Savable, Comparable<Material>
|
|||||||
|
|
||||||
private void clearUniformsSetByCurrent(Shader shader) {
|
private void clearUniformsSetByCurrent(Shader shader) {
|
||||||
ListMap<String, Uniform> uniforms = shader.getUniformMap();
|
ListMap<String, Uniform> uniforms = shader.getUniformMap();
|
||||||
for (int i = 0; i < uniforms.size(); i++) {
|
int size = uniforms.size();
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
Uniform u = uniforms.getValue(i);
|
Uniform u = uniforms.getValue(i);
|
||||||
u.clearSetByCurrentMaterial();
|
u.clearSetByCurrentMaterial();
|
||||||
}
|
}
|
||||||
@ -950,7 +951,8 @@ public class Material implements Asset, Cloneable, Savable, Comparable<Material>
|
|||||||
|
|
||||||
private void resetUniformsNotSetByCurrent(Shader shader) {
|
private void resetUniformsNotSetByCurrent(Shader shader) {
|
||||||
ListMap<String, Uniform> uniforms = shader.getUniformMap();
|
ListMap<String, Uniform> uniforms = shader.getUniformMap();
|
||||||
for (int i = 0; i < uniforms.size(); i++) {
|
int size = uniforms.size();
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
Uniform u = uniforms.getValue(i);
|
Uniform u = uniforms.getValue(i);
|
||||||
if (!u.isSetByCurrentMaterial()) {
|
if (!u.isSetByCurrentMaterial()) {
|
||||||
u.clearValue();
|
u.clearValue();
|
||||||
|
@ -295,6 +295,8 @@ public class LwjglCanvas extends LwjglAbstractDisplay implements JmeCanvasContex
|
|||||||
*/
|
*/
|
||||||
protected PixelFormat acquirePixelFormat(boolean forPbuffer){
|
protected PixelFormat acquirePixelFormat(boolean forPbuffer){
|
||||||
if (forPbuffer){
|
if (forPbuffer){
|
||||||
|
// Use 0 samples for pbuffer format, prevents
|
||||||
|
// crashes on bad drivers
|
||||||
if (pbufferFormat == null){
|
if (pbufferFormat == null){
|
||||||
pbufferFormat = new PixelFormat(settings.getBitsPerPixel(),
|
pbufferFormat = new PixelFormat(settings.getBitsPerPixel(),
|
||||||
0,
|
0,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user