diff --git a/crates/figma_import/src/shader_schema.rs b/crates/figma_import/src/shader_schema.rs index 615fa89fc..1c42af59f 100644 --- a/crates/figma_import/src/shader_schema.rs +++ b/crates/figma_import/src/shader_schema.rs @@ -35,7 +35,7 @@ pub struct ShaderUniformJson { impl Into<(String, ShaderUniform)> for ShaderUniformJson { fn into(self) -> (String, ShaderUniform) { let uniform_value = match self.uniform_type.as_str() { - "float" => { + "float" | "iTime" => { if let Some(float_val) = self.uniform_value.as_f64() { Some(ShaderUniformValue { value_type: Some(FloatValue(float_val as f32)) }) } else { diff --git a/designcompose/src/main/java/com/android/designcompose/FrameRender.kt b/designcompose/src/main/java/com/android/designcompose/FrameRender.kt index aa335646b..0a72ae4f3 100644 --- a/designcompose/src/main/java/com/android/designcompose/FrameRender.kt +++ b/designcompose/src/main/java/com/android/designcompose/FrameRender.kt @@ -669,7 +669,7 @@ fun ShaderUniform.applyToShader( val definedType = shaderUniformMap[name]?.type when (value.valueTypeCase) { ValueTypeCase.FLOAT_VALUE -> { - if (definedType == "float") { + if (definedType == "float" || definedType == "iTime") { shader.setFloatUniform(name, value.floatValue) } } @@ -755,15 +755,6 @@ internal fun getCustomBrush( v.applyToShader(shader, it.shaderUniformsMap) } customizations.getShaderUniformList(nodeName)?.forEach { customUniform -> - // iTime is preset uniform which is not in the shader uniforms map. - // We need a customization for it when the shader code animate over time. - if (customUniform.name == ShaderHelper.UNIFORM_TIME) { - shader.setFloatUniform( - customUniform.name, - customUniform.value.floatValue, - ) - return@forEach - } if (it.shaderUniformsMap.containsKey(customUniform.name)) { customUniform.applyToShader(shader, it.shaderUniformsMap) } else { @@ -773,15 +764,6 @@ internal fun getCustomBrush( customizations.getShaderUniformStateList(nodeName)?.forEach { customUniformState -> val customUniform = customUniformState.value - // iTime is preset uniform which is not in the shader uniforms map. - // We need a customization for it when the shader code animate over time. - if (customUniform.name == ShaderHelper.UNIFORM_TIME) { - shader.setFloatUniform( - customUniform.name, - customUniform.value.floatValue, - ) - return@forEach - } if (it.shaderUniformsMap.containsKey(customUniform.name)) { customUniform.applyToShader(shader, it.shaderUniformsMap) } else { diff --git a/integration-tests/validation/src/main/assets/figma/BrushFromShaderPluginTestDoc_TkgjNl81e5joWeAivmIdzm.dcf b/integration-tests/validation/src/main/assets/figma/BrushFromShaderPluginTestDoc_TkgjNl81e5joWeAivmIdzm.dcf index cda28a0a8..39a08ec03 100644 Binary files a/integration-tests/validation/src/main/assets/figma/BrushFromShaderPluginTestDoc_TkgjNl81e5joWeAivmIdzm.dcf and b/integration-tests/validation/src/main/assets/figma/BrushFromShaderPluginTestDoc_TkgjNl81e5joWeAivmIdzm.dcf differ diff --git a/support-figma/extended-layout-plugin/src/shader.html b/support-figma/extended-layout-plugin/src/shader.html index 993d0a9d1..f7c1fa863 100644 --- a/support-figma/extended-layout-plugin/src/shader.html +++ b/support-figma/extended-layout-plugin/src/shader.html @@ -23,15 +23,13 @@