diff options
author | Yang Ni <yangni@google.com> | 2016-04-18 16:56:16 -0700 |
---|---|---|
committer | Yang Ni <yangni@google.com> | 2016-04-20 09:49:36 -0700 |
commit | 6bdfe0fc5c0845f91cf3ccad961d270ed2a49aa1 (patch) | |
tree | ad7a9005fa5135358c2fbccb577f3a527364a544 /rs/java/android/renderscript/Sampler.java | |
parent | e05bdb15e519fb0d7575d33cb08ff9e17b117568 (diff) |
Made Element accessors thread-safe
Bug: 28177082
Change-Id: I8f3f2d8ce559e93cba29f8eedd5b95d1389deb23
(cherry picked from commit 33703f0c4e9b16bda5fd72e71d7d89359ee0db17)
Diffstat (limited to 'rs/java/android/renderscript/Sampler.java')
-rw-r--r-- | rs/java/android/renderscript/Sampler.java | 162 |
1 files changed, 99 insertions, 63 deletions
diff --git a/rs/java/android/renderscript/Sampler.java b/rs/java/android/renderscript/Sampler.java index 5c4bae99ba8f..70e88bc51f79 100644 --- a/rs/java/android/renderscript/Sampler.java +++ b/rs/java/android/renderscript/Sampler.java @@ -98,13 +98,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler CLAMP_NEAREST(RenderScript rs) { - if(rs.mSampler_CLAMP_NEAREST == null) { - Builder b = new Builder(rs); - b.setMinification(Value.NEAREST); - b.setMagnification(Value.NEAREST); - b.setWrapS(Value.CLAMP); - b.setWrapT(Value.CLAMP); - rs.mSampler_CLAMP_NEAREST = b.create(); + if (rs.mSampler_CLAMP_NEAREST == null) { + synchronized (rs) { + if (rs.mSampler_CLAMP_NEAREST == null) { + Builder b = new Builder(rs); + b.setMinification(Value.NEAREST); + b.setMagnification(Value.NEAREST); + b.setWrapS(Value.CLAMP); + b.setWrapT(Value.CLAMP); + rs.mSampler_CLAMP_NEAREST = b.create(); + } + } } return rs.mSampler_CLAMP_NEAREST; } @@ -118,13 +122,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler CLAMP_LINEAR(RenderScript rs) { - if(rs.mSampler_CLAMP_LINEAR == null) { - Builder b = new Builder(rs); - b.setMinification(Value.LINEAR); - b.setMagnification(Value.LINEAR); - b.setWrapS(Value.CLAMP); - b.setWrapT(Value.CLAMP); - rs.mSampler_CLAMP_LINEAR = b.create(); + if (rs.mSampler_CLAMP_LINEAR == null) { + synchronized (rs) { + if (rs.mSampler_CLAMP_LINEAR == null) { + Builder b = new Builder(rs); + b.setMinification(Value.LINEAR); + b.setMagnification(Value.LINEAR); + b.setWrapS(Value.CLAMP); + b.setWrapT(Value.CLAMP); + rs.mSampler_CLAMP_LINEAR = b.create(); + } + } } return rs.mSampler_CLAMP_LINEAR; } @@ -138,13 +146,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler CLAMP_LINEAR_MIP_LINEAR(RenderScript rs) { - if(rs.mSampler_CLAMP_LINEAR_MIP_LINEAR == null) { - Builder b = new Builder(rs); - b.setMinification(Value.LINEAR_MIP_LINEAR); - b.setMagnification(Value.LINEAR); - b.setWrapS(Value.CLAMP); - b.setWrapT(Value.CLAMP); - rs.mSampler_CLAMP_LINEAR_MIP_LINEAR = b.create(); + if (rs.mSampler_CLAMP_LINEAR_MIP_LINEAR == null) { + synchronized (rs) { + if (rs.mSampler_CLAMP_LINEAR_MIP_LINEAR == null) { + Builder b = new Builder(rs); + b.setMinification(Value.LINEAR_MIP_LINEAR); + b.setMagnification(Value.LINEAR); + b.setWrapS(Value.CLAMP); + b.setWrapT(Value.CLAMP); + rs.mSampler_CLAMP_LINEAR_MIP_LINEAR = b.create(); + } + } } return rs.mSampler_CLAMP_LINEAR_MIP_LINEAR; } @@ -158,13 +170,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler WRAP_NEAREST(RenderScript rs) { - if(rs.mSampler_WRAP_NEAREST == null) { - Builder b = new Builder(rs); - b.setMinification(Value.NEAREST); - b.setMagnification(Value.NEAREST); - b.setWrapS(Value.WRAP); - b.setWrapT(Value.WRAP); - rs.mSampler_WRAP_NEAREST = b.create(); + if (rs.mSampler_WRAP_NEAREST == null) { + synchronized (rs) { + if (rs.mSampler_WRAP_NEAREST == null) { + Builder b = new Builder(rs); + b.setMinification(Value.NEAREST); + b.setMagnification(Value.NEAREST); + b.setWrapS(Value.WRAP); + b.setWrapT(Value.WRAP); + rs.mSampler_WRAP_NEAREST = b.create(); + } + } } return rs.mSampler_WRAP_NEAREST; } @@ -178,13 +194,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler WRAP_LINEAR(RenderScript rs) { - if(rs.mSampler_WRAP_LINEAR == null) { - Builder b = new Builder(rs); - b.setMinification(Value.LINEAR); - b.setMagnification(Value.LINEAR); - b.setWrapS(Value.WRAP); - b.setWrapT(Value.WRAP); - rs.mSampler_WRAP_LINEAR = b.create(); + if (rs.mSampler_WRAP_LINEAR == null) { + synchronized (rs) { + if (rs.mSampler_WRAP_LINEAR == null) { + Builder b = new Builder(rs); + b.setMinification(Value.LINEAR); + b.setMagnification(Value.LINEAR); + b.setWrapS(Value.WRAP); + b.setWrapT(Value.WRAP); + rs.mSampler_WRAP_LINEAR = b.create(); + } + } } return rs.mSampler_WRAP_LINEAR; } @@ -198,13 +218,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler WRAP_LINEAR_MIP_LINEAR(RenderScript rs) { - if(rs.mSampler_WRAP_LINEAR_MIP_LINEAR == null) { - Builder b = new Builder(rs); - b.setMinification(Value.LINEAR_MIP_LINEAR); - b.setMagnification(Value.LINEAR); - b.setWrapS(Value.WRAP); - b.setWrapT(Value.WRAP); - rs.mSampler_WRAP_LINEAR_MIP_LINEAR = b.create(); + if (rs.mSampler_WRAP_LINEAR_MIP_LINEAR == null) { + synchronized (rs) { + if (rs.mSampler_WRAP_LINEAR_MIP_LINEAR == null) { + Builder b = new Builder(rs); + b.setMinification(Value.LINEAR_MIP_LINEAR); + b.setMagnification(Value.LINEAR); + b.setWrapS(Value.WRAP); + b.setWrapT(Value.WRAP); + rs.mSampler_WRAP_LINEAR_MIP_LINEAR = b.create(); + } + } } return rs.mSampler_WRAP_LINEAR_MIP_LINEAR; } @@ -218,13 +242,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler MIRRORED_REPEAT_NEAREST(RenderScript rs) { - if(rs.mSampler_MIRRORED_REPEAT_NEAREST == null) { - Builder b = new Builder(rs); - b.setMinification(Value.NEAREST); - b.setMagnification(Value.NEAREST); - b.setWrapS(Value.MIRRORED_REPEAT); - b.setWrapT(Value.MIRRORED_REPEAT); - rs.mSampler_MIRRORED_REPEAT_NEAREST = b.create(); + if (rs.mSampler_MIRRORED_REPEAT_NEAREST == null) { + synchronized (rs) { + if (rs.mSampler_MIRRORED_REPEAT_NEAREST == null) { + Builder b = new Builder(rs); + b.setMinification(Value.NEAREST); + b.setMagnification(Value.NEAREST); + b.setWrapS(Value.MIRRORED_REPEAT); + b.setWrapT(Value.MIRRORED_REPEAT); + rs.mSampler_MIRRORED_REPEAT_NEAREST = b.create(); + } + } } return rs.mSampler_MIRRORED_REPEAT_NEAREST; } @@ -238,13 +266,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler MIRRORED_REPEAT_LINEAR(RenderScript rs) { - if(rs.mSampler_MIRRORED_REPEAT_LINEAR == null) { - Builder b = new Builder(rs); - b.setMinification(Value.LINEAR); - b.setMagnification(Value.LINEAR); - b.setWrapS(Value.MIRRORED_REPEAT); - b.setWrapT(Value.MIRRORED_REPEAT); - rs.mSampler_MIRRORED_REPEAT_LINEAR = b.create(); + if (rs.mSampler_MIRRORED_REPEAT_LINEAR == null) { + synchronized (rs) { + if (rs.mSampler_MIRRORED_REPEAT_LINEAR == null) { + Builder b = new Builder(rs); + b.setMinification(Value.LINEAR); + b.setMagnification(Value.LINEAR); + b.setWrapS(Value.MIRRORED_REPEAT); + b.setWrapT(Value.MIRRORED_REPEAT); + rs.mSampler_MIRRORED_REPEAT_LINEAR = b.create(); + } + } } return rs.mSampler_MIRRORED_REPEAT_LINEAR; } @@ -258,13 +290,17 @@ public class Sampler extends BaseObj { * @return Sampler */ public static Sampler MIRRORED_REPEAT_LINEAR_MIP_LINEAR(RenderScript rs) { - if(rs.mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR == null) { - Builder b = new Builder(rs); - b.setMinification(Value.LINEAR_MIP_LINEAR); - b.setMagnification(Value.LINEAR); - b.setWrapS(Value.MIRRORED_REPEAT); - b.setWrapT(Value.MIRRORED_REPEAT); - rs.mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR = b.create(); + if (rs.mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR == null) { + synchronized (rs) { + if (rs.mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR == null) { + Builder b = new Builder(rs); + b.setMinification(Value.LINEAR_MIP_LINEAR); + b.setMagnification(Value.LINEAR); + b.setWrapS(Value.MIRRORED_REPEAT); + b.setWrapT(Value.MIRRORED_REPEAT); + rs.mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR = b.create(); + } + } } return rs.mSampler_MIRRORED_REPEAT_LINEAR_MIP_LINEAR; } |