From a93f6a118cfa5fe2098fbf8a664ddc98348eb009 Mon Sep 17 00:00:00 2001 From: mulova Date: Sun, 20 Mar 2011 12:10:39 +0000 Subject: [PATCH] URL: http://jmonkeyengine.org/groups/contribution-depot-jme3/forum/topic/crosspatchfilter-fails-on-mac/ CrossHatchFilter uniform types from int to float git-svn-id: http://jmonkeyengine.googlecode.com/svn/trunk@7057 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../core-data/Common/MatDefs/Post/CrossHatch.frag | 18 +++++++++--------- .../core-data/Common/MatDefs/Post/CrossHatch.j3md | 4 ++-- .../com/jme3/post/filters/CrossHatchFilter.java | 20 ++++++++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/engine/src/core-data/Common/MatDefs/Post/CrossHatch.frag b/engine/src/core-data/Common/MatDefs/Post/CrossHatch.frag index d76b4cc4b..fc700f883 100644 --- a/engine/src/core-data/Common/MatDefs/Post/CrossHatch.frag +++ b/engine/src/core-data/Common/MatDefs/Post/CrossHatch.frag @@ -13,30 +13,30 @@ uniform float m_Luminance3; uniform float m_Luminance4; uniform float m_Luminance5; -uniform int m_LineDistance; -uniform int m_LineThickness; +uniform float m_LineDistance; +uniform float m_LineThickness; void main() { vec4 texVal = texture2D(m_Texture, texCoord); - float linePixel = 0; + float linePixel = 0.0; float lum = texVal.r*0.2126 + texVal.g*0.7152 + texVal.b*0.0722; if (lum < m_Luminance1){ - if (mod(gl_FragCoord.x + gl_FragCoord.y, m_LineDistance * 2) < m_LineThickness) - linePixel = 1; + if (mod(gl_FragCoord.x + gl_FragCoord.y, m_LineDistance * 2.0) < m_LineThickness) + linePixel = 1.0; } if (lum < m_Luminance2){ - if (mod(gl_FragCoord.x - gl_FragCoord.y, m_LineDistance * 2) < m_LineThickness) - linePixel = 1; + if (mod(gl_FragCoord.x - gl_FragCoord.y, m_LineDistance * 2.0) < m_LineThickness) + linePixel = 1.0; } if (lum < m_Luminance3){ if (mod(gl_FragCoord.x + gl_FragCoord.y - m_LineDistance, m_LineDistance) < m_LineThickness) - linePixel = 1; + linePixel = 1.0; } if (lum < m_Luminance4){ if (mod(gl_FragCoord.x - gl_FragCoord.y - m_LineDistance, m_LineDistance) < m_LineThickness) - linePixel = 1; + linePixel = 1.0; } if (lum < m_Luminance5){ // No line, make a blob instead linePixel = m_FillValue; diff --git a/engine/src/core-data/Common/MatDefs/Post/CrossHatch.j3md b/engine/src/core-data/Common/MatDefs/Post/CrossHatch.j3md index e25782d9a..bf850dc9f 100644 --- a/engine/src/core-data/Common/MatDefs/Post/CrossHatch.j3md +++ b/engine/src/core-data/Common/MatDefs/Post/CrossHatch.j3md @@ -13,8 +13,8 @@ MaterialDef CrossHatch { Float Luminance3; Float Luminance4; Float Luminance5; - Int LineThickness; - Int LineDistance; + Float LineThickness; + Float LineDistance; } Technique { diff --git a/engine/src/desktop-fx/com/jme3/post/filters/CrossHatchFilter.java b/engine/src/desktop-fx/com/jme3/post/filters/CrossHatchFilter.java index 1ba5d541d..6cdf14d11 100644 --- a/engine/src/desktop-fx/com/jme3/post/filters/CrossHatchFilter.java +++ b/engine/src/desktop-fx/com/jme3/post/filters/CrossHatchFilter.java @@ -61,8 +61,8 @@ public class CrossHatchFilter extends Filter { private float luminance3 = 0.5f; private float luminance4 = 0.3f; private float luminance5 = 0.0f; - private int lineThickness = 1; - private int lineDistance = 4; + private float lineThickness = 1.0f; + private float lineDistance = 4.0f; public CrossHatchFilter() { super("CrossHatchFilter"); @@ -96,8 +96,8 @@ public class CrossHatchFilter extends Filter { material.setFloat("Luminance4", luminance4); material.setFloat("Luminance5", luminance5); - material.setInt("LineThickness", lineThickness); - material.setInt("LineDistance", lineDistance); + material.setFloat("LineThickness", lineThickness); + material.setFloat("LineDistance", lineDistance); } @Override @@ -191,10 +191,10 @@ public class CrossHatchFilter extends Filter { /* * Sets the thickness of lines drawn */ - public void setLineThickness(int lineThickness) { + public void setLineThickness(float lineThickness) { this.lineThickness = lineThickness; if (material != null) { - material.setInt("LineThickness", lineThickness); + material.setFloat("LineThickness", lineThickness); } } @@ -203,10 +203,10 @@ public class CrossHatchFilter extends Filter { * Primary lines are drawn at 2*lineDistance * Secondary lines are drawn at lineDistance */ - public void setLineDistance(int lineDistance) { + public void setLineDistance(float lineDistance) { this.lineDistance = lineDistance; if (material != null) { - material.setInt("LineDistance", lineDistance); + material.setFloat("LineDistance", lineDistance); } } @@ -248,14 +248,14 @@ public class CrossHatchFilter extends Filter { /* * Returns the thickness of the lines drawn */ - public int getLineThickness() { + public float getLineThickness() { return lineThickness; } /* * Returns minimum distance between lines */ - public int getLineDistance() { + public float getLineDistance() { return lineDistance; } -- 2.11.0