@Override public void applyParams() { super.applyParams(); } }
public SobelPass(float x, float y) { super(); if(x > 0) gX = x; if(y > 0) gY = y; mVertexShader = new SobelVertexShader(); mVertexShader.initialize(); mVertexShader.buildShader(); mFragmentShader = new SobelFragmentShader(); mFragmentShader.initialize(); mFragmentShader.buildShader(); createMaterial(mVertexShader, mFragmentShader); }
@Override public void setLocations(int programHandle) { super.setLocations(programHandle); }
@Override public void initialize() { super.initialize(); addPrecisionQualifier(DataType.FLOAT, Precision.HIGHP); // -- uniforms muColorInfluence = (RFloat) addUniform(DefaultShaderVar.U_COLOR_INFLUENCE); if(mTimeEnabled) addUniform(DefaultShaderVar.U_TIME); addUniform(DefaultShaderVar.U_INVERSE_VIEW_MATRIX); // -- varyings mvTextureCoord = (RVec2) addVarying(DefaultShaderVar.V_TEXTURE_COORD); if(mHasCubeMaps) mvCubeTextureCoord = (RVec3) addVarying(DefaultShaderVar.V_CUBE_TEXTURE_COORD); mvNormal = (RVec3) addVarying(DefaultShaderVar.V_NORMAL); mvColor = (RVec4) addVarying(DefaultShaderVar.V_COLOR); addVarying(DefaultShaderVar.V_EYE_DIR); // -- globals mgColor = (RVec4) addGlobal(DefaultShaderVar.G_COLOR); mgNormal = (RVec3) addGlobal(DefaultShaderVar.G_NORMAL); mgTextureCoord = (RVec2) addGlobal(DefaultShaderVar.G_TEXTURE_COORD); mgShadowValue = (RFloat) addGlobal(DefaultShaderVar.G_SHADOW_VALUE); mgSpecularValue = (RFloat) addGlobal(DefaultShaderVar.G_SPECULAR_VALUE); }
/** * Applies parameters that should be set on the shaders. These are parameters * like time, color, buffer handles, etc. */ public void applyParams() { mVertexShader.setColor(mColor); mVertexShader.setTime(mTime); mVertexShader.applyParams(); mFragmentShader.setColorInfluence(mColorInfluence); mFragmentShader.applyParams(); }
onPreVertexShaderInitialize(mVertexShader); mVertexShader.initialize(); mFragmentShader = new FragmentShader(); mFragmentShader.enableTime(mTimeEnabled); mFragmentShader.hasCubeMaps(hasCubeMaps); onPreFragmentShaderInitialize(mFragmentShader); mFragmentShader.initialize(); } else { if (mVertexShader.needsBuild()) mVertexShader.initialize(); if (mFragmentShader.needsBuild()) mFragmentShader.initialize(); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addPreprocessorDirective("#extension GL_OES_EGL_image_external : require"); mFragmentShader.setLights(mLights); mLightsVertexShaderFragment.setAmbientIntensity(mAmbientIntensity); mVertexShader.addShaderFragment(mLightsVertexShaderFragment); mFragmentShader.addShaderFragment(new LightsFragmentShaderFragment(mLights)); mVertexShader.addShaderFragment(fragment); fragment = mDiffuseMethod.getFragmentShaderFragment();
@Override public void initialize() { super.initialize(); }
protected void createMaterial(int vertexShaderResourceId, int fragmentShaderResourceId) { mVertexShader = new VertexShader(vertexShaderResourceId); mFragmentShader = new FragmentShader(fragmentShaderResourceId); mVertexShader.setNeedsBuild(false); mFragmentShader.setNeedsBuild(false); setMaterial(new Material(mVertexShader, mFragmentShader)); }
/** * Checks if any {@link IMaterialPlugin}s have been added. If so they will be added * to the vertex and/or fragment shader. * * @param location Where to insert the vertex and/or fragment shader */ private void checkForPlugins(PluginInsertLocation location) { if (mPlugins == null) return; for (IMaterialPlugin plugin : mPlugins) { if (plugin.getInsertLocation() == location) { mVertexShader.addShaderFragment(plugin.getVertexShaderFragment()); mFragmentShader.addShaderFragment(plugin.getFragmentShaderFragment()); } } }
protected void createMaterial(@RawRes int vertexShaderResourceId, @RawRes int fragmentShaderResourceId) { createMaterial(new VertexShader(vertexShaderResourceId), new FragmentShader(fragmentShaderResourceId)); }
mVertexShader.useVertexColors(mUseVertexColors); mVertexShader.initialize(); mFragmentShader = new FragmentShader(); mFragmentShader.enableTime(mTimeEnabled); mFragmentShader.hasCubeMaps(hasCubeMaps); mFragmentShader.initialize(); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addPreprocessorDirective("#extension GL_OES_EGL_image_external : require"); mFragmentShader.setLights(mLights); mLightsVertexShaderFragment.setAmbientIntensity(mAmbientIntensity); mVertexShader.addShaderFragment(mLightsVertexShaderFragment); mFragmentShader.addShaderFragment(new LightsFragmentShaderFragment(mLights)); mVertexShader.addShaderFragment(fragment); fragment = mDiffuseMethod.getFragmentShaderFragment(); mFragmentShader.addShaderFragment(fragment); mFragmentShader.addShaderFragment(fragment);
addPrecisionQualifier(DataType.FLOAT, Precision.MEDIUMP); muColorInfluence = (RFloat) addUniform(DefaultShaderVar.U_COLOR_INFLUENCE); if(mTimeEnabled) addUniform(DefaultShaderVar.U_TIME); mvTextureCoord = (RVec2) addVarying(DefaultShaderVar.V_TEXTURE_COORD); if(mHasCubeMaps) mvCubeTextureCoord = (RVec3) addVarying(DefaultShaderVar.V_CUBE_TEXTURE_COORD); mvNormal = (RVec3) addVarying(DefaultShaderVar.V_NORMAL); mvColor = (RVec4) addVarying(DefaultShaderVar.V_COLOR); addVarying(DefaultShaderVar.V_EYE_DIR); mgColor = (RVec4) addGlobal(DefaultShaderVar.G_COLOR); mgNormal = (RVec3) addGlobal(DefaultShaderVar.G_NORMAL); mgTextureCoord = (RVec2) addGlobal(DefaultShaderVar.G_TEXTURE_COORD); mgShadowValue = (RFloat) addGlobal(DefaultShaderVar.G_SHADOW_VALUE); mgSpecularValue = (RFloat) addGlobal(DefaultShaderVar.G_SPECULAR_VALUE);
/** * Applies parameters that should be set on the shaders. These are parameters * like time, color, buffer handles, etc. */ public void applyParams() { mVertexShader.setColor(mColor); mVertexShader.setTime(mTime); mVertexShader.applyParams(); mFragmentShader.setColorInfluence(mColorInfluence); mFragmentShader.applyParams(); }
@Override public void initialize() { super.initialize(); uTexture = (RSampler2D) addUniform(PARAM_TEXTURE, DataType.SAMPLER2D); vTextureCoord = (RVec2) addVarying(DefaultShaderVar.V_TEXTURE_COORD); uSobel = (RVec2) addUniform(PARAM_SOBEL, DataType.VEC2); }
/** * Checks if any {@link IMaterialPlugin}s have been added. If so they will be added * to the vertex and/or fragment shader. * * @param location Where to insert the vertex and/or fragment shader */ private void checkForPlugins(PluginInsertLocation location) { if (mPlugins == null) return; for (IMaterialPlugin plugin : mPlugins) { if (plugin.getInsertLocation() == location) { mVertexShader.addShaderFragment(plugin.getVertexShaderFragment()); mFragmentShader.addShaderFragment(plugin.getFragmentShaderFragment()); } } }
@Override public void applyParams() { super.applyParams(); GLES20.glUniform1f(muOpacityHandle, mOpacity); }
@Override public void setLocations(final int programHandle) { super.setLocations(programHandle); muOpacityHandle = getUniformLocation(programHandle, "uOpacity"); }
public PixelatedPass(float rows, float cols) { super(); if(rows > 0) this.rows = rows; if(cols > 0) this.cols = cols; mVertexShader = new PixelatedVertexShader(); mVertexShader.initialize(); mVertexShader.buildShader(); //Log.d(getClass().getSimpleName(), "=== vertex shader ===\n" + mVertexShader.getShaderString()); mFragmentShader = new PixelatedFragmentShader(); mFragmentShader.initialize(); mFragmentShader.buildShader(); //Log.d(getClass().getSimpleName(), "=== fragment shader ===\n" + mFragmentShader.getShaderString()); createMaterial(mVertexShader, mFragmentShader); }
@Override public void initialize() { super.initialize(); uTexture = (RSampler2D) addUniform(PARAM_TEXTURE, DataType.SAMPLER2D); vTextureCoord = (RVec2) addVarying(DefaultShaderVar.V_TEXTURE_COORD); uGrid = (RVec2) addUniform(PARAM_GRID, DataType.VEC2); }
@Override public void applyParams() { super.applyParams(); GLES20.glUniform1f(rtWHandle, mReadTarget.getWidth()); GLES20.glUniform1f(rtHHandle, mReadTarget.getHeight()); } }